即使当前 Activity 不是 Main Activity,如何退出 Android App

How to exit from Android App even if current Activity is not Main Activity

我有这个activity流程

HomeActivity > Activity1 > Activity2 > Activity3 > HomeActivity

我通过在 Activity3 上按取消按钮直接从 Activity3 切换回 HomeActivity。

但是当我在 HomeActivity 上按下后退按钮时,我想退出该应用程序,但它会将我带回到 Activity3...如何退出该应用程序???这是我的代码 在首页 activity:

@Override
    public void onBackPressed() {
            finish();
            System.exit(1);
        }  

如果我在应用程序刚刚在 HomeActivity 上启动时按下后退按钮,它会正常工作,关闭应用程序...

当我浏览所有这些其他活动时,如何让它发挥作用?

您应该这样从 Activity3 切换到 HomeActivity:

Intent launchNextActivity = new Intent(Activity3.this, HomeActivity.class);
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);                  
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(launchNextActivity);

那么 onBackPressed() 应该可以正常工作。

首先请注意,当您在活动中导航时,您会创建一堆活动,这就是为什么只需调用 finish() 就可以完成您的 HomeActivity,然后 android 会得到堆栈上的前一个 activity,即 Activity 3 并将其放在屏幕上。

我会这样做:

1) 从 Activity3 拨打您的家Activity,如下所示:

Intent intent = new Intent(this, HomeActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("Exit", true);
startActivity(intent);
finish();

这将调用您的主页Activity并从堆栈中清除您的所有活动

2) 在首页Activity OnCreate() 添加:

if( getIntent().getBooleanExtra("Exit", false)){
    finish();
}

希望对您有所帮助!如果代码不起作用或者我误解了问题,请不要怀疑评论。

试试打电话 完成亲和力();在 HomeAactivity.

的 onBackPressed() 中