我有一个小问题,我不知道。
对于我的程序,如果用户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,以便该事件进入活动。