如果不活动10分钟,则自动从应用程序注销(会话管理)

时间:2017-07-31 16:41:25

标签: android

我想在Android应用程序中实现会话管理。我想从应用程序注销,如果15或10分钟不活动。目前我正在使用以下代码进行会话管理。如果超时小于2分钟,它的工作正常。有没有更好的或替代的解决方案?

public static final long DISCONNECT_TIMEOUT = 600000;// 15 min

    private Handler disconnectHandler = new Handler() {
        public void handleMessage(Message msg) {
        }
    };

    private Runnable disconnectCallback = new Runnable() {
        @Override
        public void run() {
            // Perform any required operation for log out

            Intent intent = new Intent(AttendanceActivity.this, LoginActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            startActivity(intent);
            finish();
        }
    };

    public void resetDisconnectTimer() {
        disconnectHandler.removeCallbacks(disconnectCallback);
        disconnectHandler.postDelayed(disconnectCallback, DISCONNECT_TIMEOUT);
    }

    public void stopDisconnectTimer() {
        disconnectHandler.removeCallbacks(disconnectCallback);
    }

    @Override
    public void onUserInteraction() {
        resetDisconnectTimer();
    }

@Override
    protected void onResume() {
        super.onResume();
        resetDisconnectTimer();
    }

    @Override
    protected void onStop() {
        super.onStop();
        stopDisconnectTimer();
    }

1 个答案:

答案 0 :(得分:0)

我假设在活动中你的意思是应用程序不在前台而且没有被用户使用。 有更好的方法来解决这个问题。 1.节省应用程序进入后台的时间(您可以使用活动生命周期回调参考:https://developer.android.com/reference/android/app/Application.ActivityLifecycleCallbacks.html)在应用程序打开时检查当前时间和上次查看时间并注销。

  1. 设置当前时间的警报+ x分钟和静音注销并在共享首选项中设置一些标志。基于标志膨胀登录屏幕