在我的应用程序中,我想在用户不活动 3 分钟后退出 loginActivity
我目前正在使用此代码来执行此操作,但在我的应用程序中有超过 20 个 Activity 所以不用粘贴这堆代码,每个 Activity 我想要通用方法来做到这一点, 请帮助我
这是我的代码
public class HomeActivity extends AppCompatActivity {
private Handler handler;
private Runnable r;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
handler = new Handler();
r = new Runnable() {
@Override
public void run() {
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
startActivity(intent);
finish();
Toast.makeText(HomeActivity.this, "Logged out after 3 minutes on inactivity.", Toast.LENGTH_SHORT).show();
}
};
startHandler();
}
public void stopHandler() {
handler.removeCallbacks(r);
}
public void startHandler() {
handler.postDelayed(r, 3 * 60 * 1000);
}
@Override
public void onUserInteraction() {
super.onUserInteraction();
stopHandler();
startHandler();
}
@Override
protected void onPause() {
stopHandler();
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
startHandler();
Log.d("onResume", "onResume_restartActivity");
}
@Override
protected void onDestroy() {
super.onDestroy();
stopHandler();
}
}
最佳答案
定义一个类
public class BaseActivity extends AppCompatActivity {
// Write logic of logout same as what you wrote in HomeActivity
}
现在将此 BaseActivity
扩展到每个登录后显示的 Activity 。喜欢
public class HomeActivity extends BaseActivity {
// Remove code related to logout from this class.
}
关于android - 如何在用户不活动时使用 Android 中所有 Activity 的通用方法注销到 loginActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51997964/