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

10-08 00:20