我有一个小问题,我无法弄清楚。 对于我的程序,我基本上想要执行一些代码,如果用户没有对应用程序做任何事情5分钟(说退出)。
我该怎么做呢?我在检测到用户什么都没做的时候迷路了,然后在用户触摸平板电脑之后重置计数。有人可以给我一些指示吗?
提前感谢!
答案 0 :(得分:5)
因此,如果您的应用程序中有单个Activity,那么您可以创建一个Timer和TimerTask来实现此目的。并且可以跟踪触摸和关键事件。因此,在您的活动中,您可以执行以下操作。
Timer longTimer;
synchronized void setupLongTimeout(long timeout) {
if(longTimer != null) {
longTimer.cancel();
longTimer = null;
}
if(longTimer == null) {
Timer longTimer = new Timer();
longTimer.schedule(new TimerTask() {
public void run() {
longTimer.cancel();
longTimer = null;
//do your stuff, i.e. finishing activity etc.
}
}, 300000 /*delay in milliseconds i.e. 5 min = 300000 ms or use timeout argument*/);
}
}
@override
public boolean onTouchEvent(MotionEvent me) {
setupLongTimeout(300000);
return super.onTouchEvent(me);
}
@override
public boolean onKeyUp(int keyCode, KeyEvent ke) {
setupLongTimeout(300000);
return super.onKeyUp(keyCode, ke);
}
如果您正在处理任何视图的任何键/触摸事件,那么您需要返回false,以便活动来到活动。