您的位置:首页 > 移动开发 > Android开发

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方法。

至此基本上就完工了,如有不足欢迎指正
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐