应用程序返回按两次注销 - 无法正常工作

时间:2018-01-22 21:26:22

标签: java android onbackpressed

我有点奇怪,我无法理解。

当我通过导航菜单退出我的应用程序时,它会将我带回登录屏幕。然后我进行了设置,以便当用户按下后退按钮两次时,它应该完全关闭应用程序。我有一个新闻出现在一次按下后说用户需要按两次,但这是我的问题。

当我按两次后,屏幕会清除,但登录屏幕会再次弹回。我在框中的最后一次登录详细信息。然后,如果我再次按两次,它会完全关闭应用程序。我需要尝试弄清楚为什么它会在前两次按下后退按钮时关闭应用程序。

以下是我正在使用的代码:

public void onBackPressed() {
    //moveTaskToBack(true);
    if (!isUserClickedBackButton){
        Toast.makeText(this, "Press back again to exit", Toast.LENGTH_SHORT).show();
        isUserClickedBackButton = true;
    } else {
        System.exit(0); // exits right out of app
        super.onBackPressed();

    }
}

我试过不使用&super; onBackPressed',我已经尝试过自己使用它了。我尝试过添加' finish()'或者只是单独使用它。我不知所措。有没有人有任何想法?

如果有任何不同,我使用Firebase进行身份验证。

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以使用:

super.onBackPressed();

并在AndroidManifest.xml中添加登录活动标记:

android:noHistory="true"

答案 1 :(得分:0)

如果你想要,你可以在不使用Android清单中的历史记录的情况下执行此操作...

//Use this as class variable..
boolean doublePressedBackExit = false;   


@Override
public void onBackPressed() {
    if (doublePressedBackExit) {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
        finish();
        System.exit(0);
        return;
    }
    this.doublePressedBackExit = true;
    Toast.makeText(getApplicationContext(), "Press again to exit..", Toast.LENGTH_SHORT).show();
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            doublePressedBackExit = false;
        }
    }, 2000);
}
相关问题