android 弹窗in,Android监听程序处于INACTIVITY(未操作状态)时间并作出相应的操作

最近遇到一个需求,app五分钟未操作需要返回到主页面。一开始就想到去监听onTouch和onClick事件,这个方法看似可行,但是实际操作起来还是很繁琐的,一不小心就达不到需要的效果。然后就果断放弃了。后来看api发现activity中有一个叫onUserInteraction()的方法,这个方法可谓是很吊的,我们先来看一下api上关于这个方法的说明。

0818b9ca8b590ca3270a3433284dd417.png

第一句话已经说得非常明显了,只要是activity有touch,click操作这个方法都会响应,关键是操作activity中的fragment时也会响应到该方法,真是爽爆炸有木有。

activity和fragment的操作我们是解决了,现在轮到一些弹窗的操作响应。拿dialog来举例,当click或touchdialog的时候该方法并不会响应,而且在dialog类中也并未找到类似的方法(如果有请指出)。这就让人很尴尬了,难道要在把dialog中的控件全都监听上onTouch? 这样肯定是要不得的。

上面说的太多了,以下给出自己的解决方案

1.首先定义一个全局的变量lastOperationTime来记录上一次操作的时间

2.在baseactivity中来起一个线程来不断地检测程序未操作的时间,在onresume里面开启线程

0818b9ca8b590ca3270a3433284dd417.png

3.关于dialog的操作(项目中只用到了dialog这一种弹窗,popupwindow。。。请参照)

0818b9ca8b590ca3270a3433284dd417.png

dialog实现了dismiss,onclick,ontouch方法,并在构造函数里面也做出了相应的处理,这样几乎囊括了dialog所有的操作。继承该dialog时请使用父类提供的onClick,onTouch方法。

至此基本上就完工了,如有不足欢迎指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值