[发明专利]一种Android系统中View间的通信方法有效
申请号: | 201510296509.X | 申请日: | 2015-06-02 |
公开(公告)号: | CN105022627B | 公开(公告)日: | 2018-04-06 |
发明(设计)人: | 田泽丰 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 杭州千克知识产权代理有限公司33246 | 代理人: | 周希良 |
地址: | 201616 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 android 系统 view 通信 方法 | ||
技术领域
本发明涉及通信的技术领域,特别是涉及一种Android系统中的View间的通信方法。
背景技术
Android系统中,View组件负责显示和触屏时间的处理,对于屏幕的点击事件也是由View来进行处理。作为View容器的Activity对View进行管理,负责View的布局以及创建移除等生命周期相关操作。当Activity/Service/Broadcast等组件收到相关驱动消息后,会更新View的显示。
在界面运行过程中,由用户点击或各种系统状态变化导致View的显示状态出现变化,View需要告知管理者Activity,以便Activity进行相关处理。为此,Android系统为View组件定义了一组回调函数,在View创建后,Activity可以设置这些回调函数。如图1所示,为了达到很好的显示效果,当界面中一个View的相关状态发生变化时,很多时候需要其他View的显示状态也发生变化。为了完成这种效果,就需要Activity设置View的回调函数。当View状态发生变化时,调用Activity设置的回调函数,然后Activity根据当前情况,调用其他View的接口函数,更新其他View的相关状态。
然而,上述方法具有以下不足:
(1)没有提供View与View之间的直接的交互通道,单个View只能与所在的Activity进行交互,然后再由Activity去与其他View进行交互,使得整个过程都需要Activity进行控制,增加了Activity的复杂度;
(2)很多Activity对于View的操作是相同的,每个Activity都需要把对应的操作重新实现一遍,增加了Activity的冗余度。
因此,如果能建立其View与View之间的通信通道,那么就不需要经过Activity进行中转操作,导致Activity复杂度和冗余度增加,并且还可以增强View的功能开发和扩展。但是,现有的技术并不支持View与View之间的通信机制,完全保持View和View之间的隔离。因此,如何提供了View之间的通信交互机制,成为当下一个热点研究课题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种Android系统中的View间的通信方法,通过View消息ID来区分View之间需要进行的操作,采取Handler线程来对消息进行管理和派发,不影响Android UI线程的运行,Activity可以根据当前运行情况对View消息进行处理和拦截,从而在减轻Activity的复杂度和冗余度的基础上,还可以丰富View的功能开发和扩展,并且不影响Activity对于View的控制。
为实现上述目的及其他相关目的,本发明提供一种Android系统中的View间的通信方法,包括1)定义与View相对应的View消息ID,采用View消息ID附带相关数据的方式构造View消息;2)建立View消息和View实体的相对应的哈希表,实现View中的View消息的注册;当View从界面中移除时,从哈希表中注销该View所注册的所有View消息;3)创建处理线程,并采用处理线程对View消息进行处理。
根据上述的Android系统中的View间的通信方法,其中:所述相关数据包括View状态变化信息。
根据上述的Android系统中的View间的通信方法,其中:所述View消息ID采用int类型。
根据上述的Android系统中的View间的通信方法,其中:所述View消息对应的数据包采用Android系统的Intent数据结构。
根据上述的Android系统中的View间的通信方法,其中:所述2)中,实现View中的View消息的注册包括以下步骤:
步骤S31、从View的View消息列表中依次读取一个View消息;
步骤S32、判断读取的View消息是否为空;若是,注册完成,流程结束;若否,转入步骤S33;
步骤S33、根据View消息ID搜索View消息所注册的哈希表;
步骤S34、判断是否有其他View注册过该View消息;若是,转入步骤S35;若否,转入步骤S36;
步骤S35、直接将View添加到哈希表中该View消息所对应的View列表中,并转入步骤S31;
步骤S36、在哈希表中创建View消息ID和相对应的View列表;
步骤S37、将View添加到哈希表中新建的View列表中,并转入步骤S31。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510296509.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:虚拟机状态控制方法与系统
- 下一篇:一种基于富媒体的数字内容制作装置及方法