如果屏幕被锁定(当应用程序仍在那里)或者如果应用程序已移至背景超过5分钟,我想要注销我的应用程序。我有一个扩展了AppCompatActivity的BaseActivity。所有其他活动都扩展了BaseActvity。
我在BaseActivity中使用了下面的代码,但在5分钟后,应用程序在LoginActivity中自行打开。你能帮我解决这个问题吗?自动注销用户,当应用程序在后台5分钟,当用户恢复应用程序?
的Java代码如下:
@Override
protected void onPause() {
super.onPause();
Log.v(TAG, "on pause called");
timer = new Timer();
Log.i(TAG, "Invoking logout timer");
LogOutTimerTask logoutTimeTask = new LogOutTimerTask();
timer.schedule(logoutTimeTask, 300000); //auto logout in 5 minutes
}
@Override
protected void onResume() {
super.onResume();
Log.v(TAG, "on resume called");
if (timer != null) {
timer.cancel();
Log.i(TAG, "cancel timer");
timer = null;
}
}
private class LogOutTimerTask extends TimerTask {
@Override
public void run() {
//redirect user to login screen
Constants.SESSION_ID = "";
Intent i = new Intent(getApplicationContext(), LoginActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
}
}
编辑
我添加了所有可能的建议,但是当我启动应用程序定时器工作均匀。代码片段会很有用。
千万不要错过意向LoginActivity因为这将启动活动 只需设置你退出的逻辑在那里。 – user3040153
使用具有待定意图的警报管理器。 –