在我的应用程序中,我要在用户不活动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();
}
}
答案 0 :(得分:1)
您可以在此处创建BaseActivity类,以实现您的功能。 然后通过所有活动扩展此活动。
您还可以使用应用程序类来控制应用程序
答案 1 :(得分:1)
定义
之类的类[Windows Driver Package - Intel Corporation (iaStorA) HDC (04/10/2017
14.8.16.1063),Windows Driver Package - ASUS (ATP) Mouse (06/17/2015
6.0.0.66),Windows Driver Package - Intel (MEIx64) System (10/03/2017
11.7.0.1045),Windows Driver Package - ASUS (HIDSwitch) System (08/18/2015
1.0.0.5)]
现在将此public class BaseActivity extends AppCompatActivity {
// Write logic of logout same as what you wrote in HomeActivity
}
扩展到每个要在登录后显示的活动。喜欢
BaseActivity