在特定的不活动时间后注销

时间:2018-03-26 18:02:08

标签: java android android-activity

我希望在我的应用程序处于非活动状态3分钟后注销用户,即3分钟内无所事事。我只有一个Activity,它包含多个Fragment个。我怎样才能做到这一点?我尝试了在同一主题上发布的答案,但没有任何效果。请问任何人都可以具体吗?

4 个答案:

答案 0 :(得分:1)

每个Activity都有onUserInteraction()个功能。您可以覆盖它并重置Runnable。如果没有用户交互,则会在3分钟后调用Runnable。不要忘记删除Runnable onDestory()。

Runnable r = new Runnable() {

    @Override
    public void run() {
        // handle timeout
    }
};

Handler handler = new Handler();

@Override
public void onUserInteraction() {
    super.onUserInteraction();
    handler.removeCallbacks(r);
    handler.postDelayed(r, 3 * 60 * 1000 );
}

@Override
protected void onDestroy() {
    super.onDestroy();
    handler.removeCallbacks(r);
}

答案 1 :(得分:0)

试试这个

使用CountDownTimer

CountDownTimer timer = new CountDownTimer(15 *60 * 1000, 1000) {

        public void onTick(long millisUntilFinished) {
           //Some code
        }

        public void onFinish() {
           //Logout
        }
     };

当用户停止任何操作时,使用timer.start(),当用户执行操作时,执行timer.cancel()

答案 2 :(得分:0)

使用警报管理器并为注销设置警报

答案 3 :(得分:0)

您有两种选择。

  1. 使用闹钟管理器并在收到闹钟后有广播接收器并从那里注销。当用户执行某些活动时,请重新启动警报。 example
  2. 有一个可以与之交谈的服务,并发送意图restartTimer。当计时器到达零时,请注销用户。