繁体   English   中英

单击设备中的后退按钮时退出应用程序

[英]Exit the app when back button in device is clicked

我的应用程序中有3个活动。

Activity A(Main Page) -> Activity B -> Activity C.

单击活动C中的“提交” button后,它将再次返回到活动A。 当我单击设备中的后退按钮退出应用程序时,它将再次返回到活动C ,然后返回到BA ,然后只能退出。

当在活动A中按下设备中的后退按钮时,有没有办法让该应用立即退出?

我在活动A中添加了以下代码,但问题是它仍然转到活动C而不是退出。

boolean doubleBackToExitPressedOnce = false;

@Override
public void onBackPressed() {
    if (doubleBackToExitPressedOnce) {
        super.onBackPressed();
        return;
    }

    this.doubleBackToExitPressedOnce = true;
    Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show();

    new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {
            doubleBackToExitPressedOnce=false;                       
        }
    }, 2000);
} 

可能当您提交活动C而不是关闭活动C时,您将再次打开活动A。 因此,请执行以下操作:从活动B的结果开始活动C,当您在活动C上提交时,调用setResult(),然后在活动C上调用finish(),然后在活动B中覆盖onActivityResult(),并且从活动C获得结果在活动B上调用finish()。然后返回活动A,如果按回去,则APP将关闭。 :) 希望这可以帮助

我也遇到过同样的情况。 基本上,我有HelloActivity(用于登录/注册),当使用完成后,他们进入MainActivity。 单击MainActivity的后退按钮时,我不希望用户转到HelloActivity。 为了做到这一点,我要做的就是在意图传递给MainActivity时调用finish()。 这是一个例子:

Intent intent = new Intent(this, MainAcivity.class);
startActivity(intent);
finish();

谢谢大家的回答和评论。我已经通过使用以下代码解决了它

 public void onBackPressed(){
        Intent a = new Intent(Intent.ACTION_MAIN);
        a.addCategory(Intent.CATEGORY_HOME);
        a.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(a);

    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM