当用户不活动时,如何使用Android中所有活动的通用方法注销以登录活动



在我的应用程序中,我想注销登录 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.
}

您可以在此处创建一个基本活动类,以实现您的功能。 然后将此活动扩展到您的所有活动。

还可以使用应用程序类来控制应用程序

最新更新