我的应用程序的主要活动是“ LoginActivity”。如果用户一次登录,则绕过“登录活动”,应用会每次打开“主活动”。我想在主要活动中以按下事件退出应用程序。如果我使用“ finish();”在“主要活动”上,我的应用程序正在运行,我想关闭应用程序。如何解决该问题。
LoginActivity:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
boolean alreadysignIn = sharedPreferences.getBoolean("haveCurrUser", false);
if (alreadysignIn) {
GoToMainActivity();
}
private void GoToMainActivity() {
//Using For by-pass to log in Activity.
//Use for log out.
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
sharedPreferences.edit().putBoolean("haveCurrUser", true).apply();
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
MainActivity:
private long backPressedTime;
....
@Override
public void onBackPressed() {
if (backPressedTime + 2000 > System.currentTimeMillis()) {
snackbar.dismiss();
super.onBackPressed();
finish();
} else {
snackbar = Snackbar.make(layoutMainContainer, getResources().getString(R.string.exit_info), Snackbar.LENGTH_SHORT);
snackbar.show();
}
backPressedTime = System.currentTimeMillis();
}
答案 0 :(得分:0)
您可以使用:
System.exit(0);
在onBackPressed()方法中。
替换finish();与System.exit(0);
希望这是您要寻找的答案。
System.exit(0)
VM停止进一步执行,您的程序将退出。
答案 1 :(得分:0)
主要活动使用此代码
@Override
public void onBackPressed() {
super.onBackPressed();
finishAffinity();
}