即使当前 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() 中
我有这个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
.