如何在Android上的SingleTop SingleInstance MainActivity上清除堆栈?

时间:2015-03-10 16:07:45

标签: android android-intent android-activity single-instance android-task

我尝试使用startActivity标记Intent方法清除堆栈中的每个活动:(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY)

(我有一个退出按钮,重置并完成所有活动,我尝试了所有"如何设置退出按钮,如何终止应用程序"问题/答案。他们不帮助我因为singleInstance的{​​{1}} launchMode配置。

通常情况下,这应该可以自动完成当前活动,而无需调用MainActivity。但是,由于我在finish()中将MainActivity标记为singleInstance,因此无法正常工作。如果我删除AndroidManifest.xml,则按预期工作。

如果我在启动singleInstance之后/之前手动调用finish()以清除所有堆栈,MainActivity会将应用程序返回到堆栈上的上一个活动。但我已经发布了finish()。所以一切都搞砸了。

(我尝试添加MainActivityIntent.FLAG_ACTIVITY_SINGLE_TOP,只是为了看它是否有任何变化而且它没有“

我需要一个适用于Intent.FLAG_ACTIVITY_MULTIPLE_TASK并且不需要手动singleInstance的解决方案。

更新1:我尝试从finish()活动启动此Intent(但更改它不会改变任何内容)

更新2:我在Android 2.3.3模拟器上试用

1 个答案:

答案 0 :(得分:0)

您可以尝试finishAffinity(),它将关闭堆栈中的所有先前活动

示例:

Intent intent = new Intent(MainActivity.this, MyActivity.class);
finishAffinity()
startActivity(intent);