安卓系统的触屏消息处理方法及系统技术方案

技术编号:14505083 阅读:94 留言:0更新日期:2017-01-31 14:05
本发明专利技术提供的安卓系统的触屏消息处理方法及系统,至少将当前获取焦点的第一Activity配置成能设置用于放弃处理触屏消息的第一属性;当检测到所述第一Activity设置所述第一属性时,获取所述第一Activity在Activity栈中至少前一位的第二Activity,并确保其设置有用于传输触屏消息的消息通道;派发触屏消息至所述第二Activity以利用其消息通道传输触屏消息至应用进程以供处理,当前处于Focus的Activity不进行触屏消息处理时,其它Activity能够接收和处理触屏消息,实现起来清晰、简单、及高效。

【技术实现步骤摘要】

本专利技术涉及移动终端
,特别是涉及安卓系统的触屏消息处理方法及系统
技术介绍
Android系统中,系统进程中的WindowManagerService组件负责触屏消息的监控和派发,系统初始化后,WindowManagerService组件会创建两个线程InputReaderThread和InputDispatcherThread,InputReaderThread线程负责监控底层驱动的触屏消息,InputDispatcherThread线程负责派发触屏消息到应用层。为了将触屏消息派发到Activity,创建Activity时,需要创建一对InputChannel管道,即ServerInputChannel和ClientInputChannel,系统进程的InputDispatcherThread线程负责管理ServerInputChannel管道,Activity所在应用的主线程负责管理ClientInputChannel管道。当有触屏消息触发时,InputDispatcherThread线程找到当前处于Focus(获得焦点,也就是处于Activity栈顶部正在使用的意思)的Activity,从中取出其对应的ServerInputChannel,向ServerInputChannel管道中写入触屏消息,之后系统会唤醒ServerInputChannel对应ClientInputChannel的应用主线程,应用主线程运行后,从ClientInputChanel中取出触屏消息,派发给具体的Activity进行处理。Activity提供了FLAG_NOT_TOUCHABLE属性设置,该属性只是能让当前FocusActivity接收不到触屏消息,却无法使得其他Activity进行触屏消息处理。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供安卓系统的触屏消息处理方法及系统,用于解决现有技术中未获得焦点的Activity的不能处理触屏消息的问题。为实现上述目的及其他相关目的,本专利技术提供一种安卓系统的触屏消息处理方法,包括:至少将当前获取焦点的第一Activity配置成能设置用于放弃处理触屏消息的第一属性;当检测到所述第一Activity设置所述第一属性时,获取所述第一Activity在Activity栈中至少前一位的第二Activity,并确保其设置有用于传输触屏消息的消息通道;派发触屏消息至所述第二Activity以利用其消息通道传输触屏消息至应用进程以供处理。于本专利技术的一实施例中,所述的安卓系统的触屏消息处理方法,包括:当检测到所述第一Activity取消设置所述第一属性时,阻断所述第二Activity的消息通道,派发触屏消息至所述第一Activity以利用其消息通道传输触屏消息至应用进程以供处理。于本专利技术的一实施例中,所述第一属性的检测是通过安卓系统中的系统进程创建的第一线程来控制的,所述触屏消息的派发是通过安卓系统中的系统进程创建的第二线程来控制实现的。于本专利技术的一实施例中,所述第二线程通过控制安卓系统中的InputDispatcher组件来实现所述派发。于本专利技术的一实施例中,所述消息通道包括:成对的第一通道及第二通道;所述第一通道用于接收所述触屏消息;所述第二通道用于与应用进程通信以传输所述触屏消息。为实现上述目的及其他相关目的,本专利技术提供一种安卓系统的触屏消息处理系统,包括:设置模块,用于对当前获取焦点的第一Activity设置用于放弃处理触屏消息的第一属性;检测模块,用于当检测到所述第一Activity设置所述第一属性时,获取所述第一Activity在Activity栈中至少前一位的第二Activity,并确保其设置有用于传输触屏消息的消息通道;处理模块,用于派发触屏消息至所述第二Activity以利用其消息通道传输触屏消息至应用进程以供处理。于本专利技术的一实施例中,所述检测模块,还用于当检测到所述第一Activity取消设置所述第一属性时,阻断所述第二Activity的消息通道,通过所述处理模块派发触屏消息至所述第一Activity以利用其消息通道传输触屏消息至应用进程以供处理。于本专利技术的一实施例中,所述检测模块是通过安卓系统中的系统进程创建的第一线程来实现的,所述处理模块是通过安卓系统中的系统进程创建的第二线程来实现的。于本专利技术的一实施例中,所述第二线程通过控制安卓系统中的InputDispatcher组件来实现所述处理模块的功能。于本专利技术的一实施例中,所述消息通道包括:成对的第一通道及第二通道;所述第一通道用于接收所述触屏消息;所述第二通道用于与应用进程通信以传输所述触屏消息。如上所述,本专利技术提供的安卓系统的触屏消息处理方法及系统,至少将当前获取焦点的第一Activity配置成能设置用于放弃处理触屏消息的第一属性;当检测到所述第一Activity设置所述第一属性时,获取所述第一Activity在Activity栈中至少前一位的第二Activity,并确保其设置有用于传输触屏消息的消息通道;派发触屏消息至所述第二Activity以利用其消息通道传输触屏消息至应用进程以供处理,当前处于Focus的Activity不进行触屏消息处理时,其它Activity能够接收和处理触屏消息,实现起来清晰、简单、及高效。附图说明图1显示为本专利技术于一实施例中的安卓系统的触屏消息处理方法的流程示意图。图2显示为本专利技术于一实施例中的处理触屏消息的具体实现的流程示意图。图3显示为本专利技术于一实施例中的实现触屏消息派发的具体实现的流程示意图。图4显示为本专利技术于一实施例中的安卓系统的触屏消息处理系统的结构示意图。元件标号说明1系统11设置模块12检测模块13处理模块S1~S3步骤具体实施方式以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本专利技术的基本构想,遂图式中仅显示与本专利技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。本专利技术的技术方案应用于安卓(Android)操本文档来自技高网
...

【技术保护点】
一种安卓系统的触屏消息处理方法,其特征在于,包括:至少将当前获取焦点的第一Activity配置成能设置用于放弃处理触屏消息的第一属性;当检测到所述第一Activity设置所述第一属性时,获取所述第一Activity在Activity栈中至少前一位的第二Activity,并确保其设置有用于传输触屏消息的消息通道;派发触屏消息至所述第二Activity以利用其消息通道传输触屏消息至应用进程以供处理。

【技术特征摘要】
1.一种安卓系统的触屏消息处理方法,其特征在于,包括:
至少将当前获取焦点的第一Activity配置成能设置用于放弃处理触屏消息的第一属
性;
当检测到所述第一Activity设置所述第一属性时,获取所述第一Activity在Activity
栈中至少前一位的第二Activity,并确保其设置有用于传输触屏消息的消息通道;
派发触屏消息至所述第二Activity以利用其消息通道传输触屏消息至应用进程以供处
理。
2.根据权利要求1所述的安卓系统的触屏消息处理方法,其特征在于,包括:
当检测到所述第一Activity取消设置所述第一属性时,阻断所述第二Activity的消息
通道,派发触屏消息至所述第一Activity以利用其消息通道传输触屏消息至应用进程以供
处理。
3.根据权利要求1或2所述的安卓系统的触屏消息处理方法,其特征在于,所述第一属性的
检测是通过安卓系统中的系统进程创建的第一线程来控制的,所述触屏消息的派发是通过
安卓系统中的系统进程创建的第二线程来控制实现的。
4.根据权利要求3所述的安卓系统的触屏消息处理方法,其特征在于,所述第二线程通过控
制安卓系统中的InputDispatcher组件来实现所述派发。
5.根据权利要求3所述的安卓系统的触屏消息处理方法,其特征在于,所述消息通道包括:
成对的第一通道及第二通道;所述第一通道用于接收所述触屏消息;所述第二通道用于与
应用进程通信以传输所述触屏消息。
6.一种安卓系统的触屏消息处理系统,其...

【专利技术属性】
技术研发人员:田泽丰
申请(专利权)人:上海斐讯数据通信技术有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1