Android监听程序处于INACTIVITY(未操作状态)时间并作出相应的操作
2016-11-18 16:23
603 查看
最近遇到一个需求,app五分钟未操作需要返回到主页面。一开始就想到去监听onTouch和onClick事件,这个方法看似可行,但是实际操作起来还是很繁琐的,一不小心就达不到需要的效果。然后就果断放弃了。后来看api发现activity中有一个叫onUserInteraction()的方法,这个方法可谓是很吊的,我们先来看一下api上关于这个方法的说明。
第一句话已经说得非常明显了,只要是activity有touch,click操作这个方法都会响应,关键是操作activity中的fragment时也会响应到该方法,真是爽爆炸有木有。
activity和fragment的操作我们是解决了,现在轮到一些弹窗的操作响应。拿dialog来举例,当click或touchdialog的时候该方法并不会响应,而且在dialog类中也并未找到类似的方法(如果有请指出)。这就让人很尴尬了,难道要在把dialog中的控件全都监听上onTouch? 这样肯定是要不得的。
上面说的太多了,以下给出自己的解决方案
1.首先定义一个全局的变量lastOperationTime来记录上一次操作的时间
2.在baseactivity中来起一个线程来不断地检测程序未操作的时间,在onresume里面开启线程
3.关于dialog的操作(项目中只用到了dialog这一种弹窗,popupwindow。。。请参照)
dialog实现了dismiss,onclick,ontouch方法,并在构造函数里面也做出了相应的处理,这样几乎囊括了dialog所有的操作。继承该dialog时请使用父类提供的onClick,onTouch方法。
至此基本上就完工了,如有不足欢迎指正
第一句话已经说得非常明显了,只要是activity有touch,click操作这个方法都会响应,关键是操作activity中的fragment时也会响应到该方法,真是爽爆炸有木有。
activity和fragment的操作我们是解决了,现在轮到一些弹窗的操作响应。拿dialog来举例,当click或touchdialog的时候该方法并不会响应,而且在dialog类中也并未找到类似的方法(如果有请指出)。这就让人很尴尬了,难道要在把dialog中的控件全都监听上onTouch? 这样肯定是要不得的。
上面说的太多了,以下给出自己的解决方案
1.首先定义一个全局的变量lastOperationTime来记录上一次操作的时间
2.在baseactivity中来起一个线程来不断地检测程序未操作的时间,在onresume里面开启线程
3.关于dialog的操作(项目中只用到了dialog这一种弹窗,popupwindow。。。请参照)
dialog实现了dismiss,onclick,ontouch方法,并在构造函数里面也做出了相应的处理,这样几乎囊括了dialog所有的操作。继承该dialog时请使用父类提供的onClick,onTouch方法。
至此基本上就完工了,如有不足欢迎指正
相关文章推荐
- “安装程序检测到计算机重新启动操作可能处于挂起状态”的解决方法
- 安装程序检测到计算机重新启动操作可能处于挂起状态 的解决方法[转]
- Flash Builder 4 安装提示“安装程序检测到计算机重新启动操作可能处于挂起状态“的解决
- adobe 系列安装出现“安装程序检测到计算机重新启动操作可能处于挂起状态”---解决方法
- “安装程序检测到计算机重新启动操作可能处于挂起状态”的解决方法
- Adobe 安装程序检测到计算机重新启动操作可能处于挂起状态。建议您退出安装程序,重新启动并重试。
- Android设备的电池续航时间优化(Optimizing Battery Life)——(一)监听电池电量和电池的充电状态
- android创建的service服务长时间处于监听状态不被系统回收
- Android开发之旅一监听程序的前后台运行状态
- Android设备的电池续航时间优化(Optimizing Battery Life)——(一)监听电池电量和电池的充电状态
- Android中Home键的监听和代码操作程序Home键退出
- 防止用户误操作返回键导致程序退出,监听back键的状态做统一处理
- android屏幕监听,手机是否处于锁屏状态,在锁屏之上弹出Toast.makeText消息
- 测试驱动开发——使自己的程序处于不安全状态的时间尽量短
- 关于Android 程序跳转到 相应app的相关操作
- 异步模块或处理程序已完成,而当时仍有异步操作处于未定状态
- Android程序中设置操作埋点,监听网页开启关闭,控件点击
- 双SIM卡,Android监听SIM卡状态
- Android监听网络状态变化
- Android SD卡状态监听