事件状态监测方法、事件状态监测器与流程

文档序号:16134335发布日期:2018-12-01 00:44阅读:229来源:国知局

本发明属于事件状态监测技术领域,具体涉及一种事件状态监测方法、事件状态监测器。

背景技术

现有技术中,安卓(android)系统本身的事件机制通常可以提供用户所需要的大部分事件状态,以供用户基于这些事件状态进行软件应用开发。但是在一些特殊情况下,android系统是不提供事件状态的,例如当用户的等级较低时,android系统会限制该用户的权限,导致该用户直接通过android系统获取的事件状态有限,从而使用户的应用开发受到很大阻碍。



技术实现要素:

本发明旨在至少解决现有技术中存在的技术问题之一,提供一种能够获取用户所需事件状态的事件状态监测方法。

解决本发明技术问题所采用的技术方案是一种事件状态监测方法,包括:

对预先设计的各个显示窗口中的各个原生控件进行继承封装,生成与所述原生控件相对应的自定义控件;

轮询确定当前显示窗口的自定义控件;

获取所述自定义控件的状态变化数据;

根据所述状态变化数据确定事件状态。

优选的,所述状态变化数据包括原生变化数据和自定义变化数据;

所述根据所述状态变化数据确定事件状态的步骤,包括:

根据所述原生变化数据和自定义变化数据,确定相应的事件,并确定出所述事件的状态。

优选的,所述获取所述自定义控件的状态变化数据的步骤具体包括:

通过回调方式获取所述自定义控件的状态变化数据。

进一步优选的,所述自定义控件设置有回调函数接口;

所述以第一预设方式获取所述自定义控件的状态变化数据步骤具体包括:

通过所述回调函数接口向当前显示窗口的每个自定义控件绑定设置对应的回调函数,以通过所述回调函数获取各自定义控件的状态变化数据。

进一步优选的,所述回调函数包括:原生状态回调函数和自定义状态回调函数;

所述状态变化数据包括原生变化数据和自定义变化数据;

所述通过所述回调函数接口向当前显示窗口的每个自定义控件绑定设置对应的回调函数,以通过所述回调函数获取各自定义控件的状态变化数据的步骤具体包括:

通过所述回调函数接口向当前显示窗口的每个自定义控件绑定设置对应的原生状态回调函数,以通过所述原生状态回调函数获取各自定义控件的原生变化数据;

通过所述回调函数接口向当前显示窗口的每个自定义控件绑定设置对应的自定义状态回调函数,以通过所述自定义状态回调函数获取各自定义控件的自定义变化数据。

进一步优选的,所述事件状态监测方法还包括:

当所述当前显示窗口不作为显示窗口后,解除所述自定义控件绑定的回调函数。

解决本发明技术问题所采用的技术方案是一种事件状态监测器,包括:

自定义单元,用于对预先设计的各个显示窗口中的各个原生控件进行继承封装,生成与所述原生控件相对应的自定义控件;

控件轮询单元,用于轮询确定当前显示窗口的自定义控件,所述自定义控件由系统中的原生控件继承封装生成;

状态监测单元,用于获取所述自定义控件的状态变化数据;

事件转换单元,用于根据所述状态变化数据确定事件状态。

优选的,所述状态监测单元具体用于,通过回调方式获取所述自定义控件的状态变化数据。

进一步优选的,所述自定义控件设置有回调函数接口;

所述状态监测单元具体用于,通过回调函数接口向当前显示窗口的每个自定义控件绑定设置对应的回调函数,以通过所述回调函数获取各自定义控件的状态变化数据。

进一步优选的,所述事件状态监测器还包括:回调函数解除单元,用于当所述当前显示窗口不作为显示窗口后,解除所述自定义控件绑定的回调函数。

附图说明

图1为本发明的实施例1的事件状态监测方法的流程图;

图2为本发明的实施例2的事件状态监测方法的流程图;

图3为本发明的实施例2中当前显示界面的示意图;

图4为本发明的实施例3的事件状态监视器的框图。

具体实施方式

为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。

实施例1:

如图1所示,本实施例提供一种事件状态监测方法,其可用于在安卓系统中,根据终端当前显示界面的状态变化来确定终端当前的事件状态,从而解决用户在开发过程中无法利用系统的原生机制获取所需事件状态的问题。

本实施例中的事件状态监测方法包括以下步骤:

s11、对预先设计的各个显示窗口中的各个原生控件进行继承封装,生成与原生控件相对应的自定义控件。

终端的显示窗口由多个控件组成。本实施例中,通过终端的实时显示窗口中所用到的控件的状态变化来确定终端正在进行的事件以及事件状态。但是由于用户在系统中的权限有限,或者系统中原本的控件(原生控件)的监测功能有限等原因,导致用户只能获取部分事件状态。因此,本实施例中通过对原生控件进行继承封装,为其赋予更多的监测功能,生成自定义控件,以利用自定义控件对更多的状态变化数据进行监测。其中,在对用户进行继承封装时,用户可以根据所需监测事件的不同来选择对不同的原生控件进行封装,以最终能够获取所需的事件状态。

同时,由于终端在进行不同事件时,用到的原生控件不同,显示界面也是不同的。为了便于在终端的实时显示界面的监测,本实施例中会对预先设计的各个显示窗口中的各个原生控件进行继承封装,生成与原生控件相对应的自定义控件,从而无需多次进行继承封装。

可以理解的是,本步骤中,在生成自定义控件以后,可以利用这些自定义控件布局组成不同的显示窗口,以供终端进行显示。

s12、轮询确定当前显示窗口的自定义控件。

具体的,事件状态监测器的控件轮询单元会从当前显示窗口的decorview节点开始轮询确定当前显示窗口的具有哪些自定义控件。

s13、获取自定义控件的状态变化数据。

控件轮询单元确定当前显示窗口的自定义控件以后,事件状态监测器的状态监测单元获取各自定义控件的状态变化数据。其中,状态变化数据的获取方式可以回调、广播等方式。

本实施例中,自定义控件继承自原生控件,于是当事件状态发生变化时,自定义控件会产生原生的变化和自定义的变化,也即,状态变化数据包括原生变化数据和自定义变化数据。

s14、根据状态变化数据确定事件状态。

本步骤中,事件状态监测器的事件转换单元根据状态监测单元获取的状态变化数据(原生变化数据和自定义变化数据)确定当前显示窗口正在进行的事件,并确定该事件的状态。

本实施例提供的事件状态监测方法中,通过监测终端的当前显示界面的各自定义控件的状态变化来确定系统当前进行的事件及事件状态,从而使用户能够基于当前事件状态进行系统应用的开发。

实施例2:

如图2所示,本实施例提供一种事件状态监测方法,其与实施例1中提供的事件状态监测方法相似。其中,优选的,本实施例中通过回调方式获取自定义空间的状态变化数据。下面以通过回调方式获取自定义空间的状态变化数据为例,对本实施例的事件状态监测方法进行具体说明。

该事件状态监测方法包括以下步骤:

s21、对预先设计的各个显示窗口中的各个原生控件进行继承封装,生成与原生控件相对应的自定义控件。

本步骤与实施例1中的s11基本一致,具体可参考实施例1,在此不再详述。

其中,特别的是,本实施例中的自定义控件设置有回调函数接口,以供事件状态监测器通过该回调函数接口向自定义控件设置回调函数,从而利用回调函数获取自定义控件的状态变化数据。

s22、轮询确定当前显示窗口的自定义控件。

具体的,事件状态监测器的控件轮询单元会从当前显示窗口的decorview节点开始轮询确定当前显示窗口的具有哪些自定义控件。

s23、通过回调方式获取自定义控件的状态变化数据。

其中,状态变化数据包括原生变化数据和自定义变化数据。

本步骤中,通过个自定义控件的回调函数接口向当前显示窗口的每个自定义控件绑定设置对应的回调函数,从而通过回调函数获取各自定义控件的状态变化数据。

具体的,步骤s23包括以下步骤:

s231、状态监测单元的回调分配模块为步骤s22中控件轮询单元确定的每个自定义控件分配相应的回调函数。其中,回调函数包括:原生状态回调函数(callback_original)和自定义状态回调函数(callback_extends)。也即,每个自定义控件个分配有一个原生状态回调函数和一个自定义状态回调函数。

s232、状态监测单元的控件绑定模块将步骤s231中分配的回调函数与各自定义控件绑定,生成带有自定义控件id的原生状态函数(widgetid_callback_original)和自定义状态回调函数(widgetid_callback_extends)。

s233、状态监测单元的回调设置模块将分配、绑定后的回调函数通过自定义控件的回调函数接口设置给自定义控件。

也即,通过回调函数接口向当前显示窗口的每个自定义控件绑定设置原生状态回调函数,以通过该原生状态回调函数获取各自定义控件的原生变化数据;同时,通过回调函数接口向当前显示窗口的每个自定义控件绑定设置自定义状态回调函数,以通过该自定义状态回调函数获取各自定义控件的自定义变化数据。

自定义控件设置好回调函数以后,当自定义控件发生状态变化时,会通过原生状态回调函数和自定义状态回调函数反馈状态变化数据,例如以下数据:

s24、根据状态变化数据确定事件状态。

事件状态监测器的事件转换单元会接收所有自定义控件的状态变化数据,并将该状态变化数据转换成相应的事件。

本步骤中,事件状态监测器的事件转换单元根据状态监测单元获取的状态变化数据(原生变化数据和自定义变化数据)确定当前显示窗口正在进行的事件,并确定该事件的状态。

其中,状态变化数据接收的步骤可通过以下代码实现:

其中,根据所监测的事件不同,事件转换函数也不同。以拨打电话以后,对方接听这个事件为例,可通过监测图3中控件2的变化来确定是否有接听事件。

事件转换函数代码如下:

至此,本实施例中完成了对当前显示界面的事件状态的监测。用户可通过上述方实现对事件状态的监测,从而解决现有技术中安卓手机无法监听对方是否已接听;通讯录中显示10个联系人名字,如果上移一行,则用户无法获取第一个名字信息;系统程序中的增加了太多的用户广播,导致系统繁忙,应用中偶然无法接收消息等情况。其中,根据用户所监测的事件的不同,对应的自定义控件、事件转换单元等也各有不同。

进一步优选的,本实施例中,在监测完当前显示界面的事件状态后,且当前显示窗口不作为显示窗口后,事件状态监测方法还包括:

s25、解除自定义控件所绑定的回调函数。

本步骤中,通过事件状态监测器的回调函数解除单元解除自定义控件所绑定的回调函数,删除自定义控件中设置的回调函数,以减少内存占用。

当终端进入下一显示界面后,重复步骤s22至步骤s25即可实现对新的显示界面的事件状态的监测。

本实施例提供的事件状态监测方法中,通过回调方式监测终端的当前显示界面的各自定义控件的状态变化,从而确定系统当前进行的事件及事件状态,进而使用户能够基于当前事件状态进行系统应用的开发。

实施例3:

如图4所示,本实施例提供一种事件状态监测器,包括:自定义单元、控件轮询单元、状态监测单元和事件转换单元。

其中,自定义单元用于对预先设计的各个显示窗口中的各个原生控件进行继承封装,生成与原生控件相对应的自定义控件。

控件轮询单元用于轮询确定当前显示窗口的自定义控件,自定义控件由系统中的原生控件继承封装生成。

状态监测单元用于获取自定义控件的状态变化数据。

事件转换单元用于根据状态变化数据确定事件状态。

优选的,状态监测单元具体用于,通过回调方式获取自定义控件的状态变化数据。

进一步优选的,自定义控件设置有回调函数接口;状态监测单元具体用于,通过回调函数接口向当前显示窗口的每个自定义控件绑定设置对应的回调函数,以通过回调函数获取各自定义控件的状态变化数据。

优选的,状态监测单元包括:回调分配模块、控件绑定模块、回调设置模块。

其中,回调分配模块用于为控件轮询单元确定的每个自定义控件分配相应的回调函数。控件绑定模块用于将分配的回调函数与各自定义控件绑定,生成带有自定义控件id的原生状态函数和自定义状态回调函数。回调设置模块用于分配、绑定后的回调函数通过自定义控件的回调函数接口设置给自定义控件。

优选的,事件状态监测器还包括:回调函数解除单元,用于当当前显示窗口不作为显示窗口后,解除自定义控件绑定的回调函数。

本实施例提供的事件状态监测器中,通过监测终端的当前显示界面的各自定义控件的状态变化来确定系统当前进行的事件及事件状态,从而使用户能够基于当前事件状态进行系统应用的开发。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1