[发明专利]消息通知方法、电子设备及计算机可读存储介质在审
申请号: | 202110345117.3 | 申请日: | 2021-03-31 |
公开(公告)号: | CN115145739A | 公开(公告)日: | 2022-10-04 |
发明(设计)人: | 吴楚明 | 申请(专利权)人: | 星络社区云物联科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518000 广东省深圳市南山区粤海街道*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 通知 方法 电子设备 计算机 可读 存储 介质 | ||
本申请公开了一种消息通知方法,应用于iOS系统,该消息通知方法包括:调用通知中心的注册监听接口,将监听对象和对应的监听回调函数注册到通知中心;通知中心以注册监听接口的消息通道名称为Key将回调函数与监听对象绑定,并使用容器以消息通道名称为Key弱引用管理所有监听对象;发布者调用通知中心的发布消息接口,通知中心根据发布消息接口的消息通道名称为Key来遍历容器,发现容器中拥有Key的所有监听对象,并且触发拥有Key的所有监听对象执行对应Key的回调函数。通过上述方式,本申请能够减少消息通知中的程序崩溃。
技术领域
本发明涉及数据处理技术领域,特别是涉及一种消息通知方法、电子设备及计算机可读存储介质。
背景技术
随着iOS应用业务的增加,项目的的业务模块流程多级沉叠,业务流程间需要实现一对多的数据交互和响应触发,iOS应用以此满足用户在操作过程中能获取正确的数据和交互状态。
现有的iOS通知模式编写繁琐、离散并且存在忘记销毁导致应用崩溃的风险。现有通知模式缺点:通知逻辑代码分散,出现冗余通知和重复通知的代码逻辑,难以维护;监听流程复杂,共分3步:监听、实现监听执行方法、释放监听;存在崩溃风险,如缺少释放监听步骤,而当系统释放监听对象,应用会崩溃。
发明内容
本申请主要解决的技术问题是提供一种消息通知方法、电子设备及计算机可读存储介质,能够通知集中管理,实现了高度解耦;使用方式简单,对应每项通知,通知中心只有监听接口和发布接口;不需要设置释放通知,不存在崩溃风险,设计模式实现了监听对象被销毁后,通知中心容器对应的元素会自动消失。
为解决上述技术问题,本申请实施例采用的一种技术方案是:提供一种消息通知方法,应用于iOS系统,所述消息通知方法包括:
调用通知中心的注册监听接口,将监听对象和对应的回调函数注册到所述通知中心;
所述通知中心以所述注册监听接口的消息通道名称为Key将所述回调函数与所述监听对象绑定,并使用容器以所述消息通道名称为Key弱引用管理所有所述监听对象;
发布者调用所述通知中心的发布消息接口,所述通知中心以所述发布消息接口根据所述消息通道名称为Key来遍历所述容器,发现所述容器中拥有所述Key的所有所述监听对象,并且触发所述拥有所述Key的所有所述监听对象执行对应Key的回调函数。
其中,所述容器的弱引用管理能满足任一所述监听对象被销毁后,所述容器中与所述监听对象对应的元素自动消失。
其中,所述容器中与所述监听对象对应的元素自动消失包括:与所述监听对象绑定的回调函数清除。
其中,所述容器中与所述监听对象对应的元素自动消失包括:与所述监听对象对应的弱引用指针指向被重置为空指针。
其中,所述使用容器以所述消息通道名称为Key弱引用管理所有所述监听对象包括:
判断所述监听对象是否存在对应的弱引用数组;
若所述监听对象存在对应的弱引用数组,则将所述监听对象的弱引用变量添加到所述弱引用数组中。
其中,所述使用容器以所述消息通道名称为Key弱引用管理所有所述监听对象还包括:
若所述监听对象不存在对应的弱引用数组,则创建新的弱引用数组,并将所述监听对象的弱引用变量添加到所述新的弱引用数组的预定位置,并将所述新的弱引用数组的处所述预定位置外的其他位置均重置为空指针。
其中,所述预定位置为所述弱引用数组的第0位置。
其中,所述容器的弱引用管理能满足任一所述监听对象被销毁后,查找到被销毁的所述监听对象相对应的弱引用数组,遍历所述弱引用数组的所有弱引用指针,分别置为空指针。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于星络社区云物联科技有限公司,未经星络社区云物联科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110345117.3/2.html,转载请声明来源钻瓜专利网。