在我的应用程序中,我想注销登录 3 分钟后用户处于非活动状态的活动
我目前正在使用此代码来执行此操作,但是在我的应用程序中有20 多个活动,因此无需粘贴这堆代码,我希望每个活动都希望通用方法执行此操作, 请帮助我
这是我的代码
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
扩展到每个活动,这意味着在登录后显示。
public class HomeActivity extends BaseActivity {
// Remove code related to logout from this class.
}
您可以在此处创建一个基本活动类,以实现您的功能。 然后将此活动扩展到您的所有活动。
还可以使用应用程序类来控制应用程序