通过退出事件使用应用程序退出

时间:2019-07-09 21:14:45

标签: android exit onbackpressed

我的应用程序的主要活动是“ 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();
}

2 个答案:

答案 0 :(得分:0)

您可以使用:

System.exit(0);

在onBackPressed()方法中。

替换finish();与System.exit(0);

希望这是您要寻找的答案。

System.exit(0)

VM停止进一步执行,您的程序将退出。

答案 1 :(得分:0)

主要活动使用此代码

@Override
    public void onBackPressed() {
        super.onBackPressed();
        finishAffinity();
    }