我正在尝试通过startActivity
带有Intent
标志的方法清除堆栈上的每一个活动: (Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY)
(我有一个退出按钮,可以重置并完成所有活动,我尝试了所有“如何制作退出按钮,如何终止应用程序”问题/答案。singleInstance
launchMode
由于MainActivity
.
通常这应该工作并自动完成当前活动而无需调用finish()
. 但是,当我将 MainActivity 标记为singleInstance
时AndroidManifest.xml
,它不起作用。如果我删除它singleInstance
,它会按预期工作。
如果我finish()
在启动之后/之前手动调用MainActivity
以清除所有堆栈,finish()
则会将应用程序返回到堆栈上的上一个活动。但我已经启动了MainActivity
. 所以一切都变得一团糟。
(我尝试添加Intent.FLAG_ACTIVITY_SINGLE_TOP
andIntent.FLAG_ACTIVITY_MULTIPLE_TASK
只是为了看看它是否改变了任何东西,但它没有)
我需要一个可以使用singleInstance
且不需要手动的解决方案finish()
。
更新 1:我尝试Intent
从一个SingleTop
活动中启动它(但改变它不会改变)
更新 2:我在 Android 2.3.3 模拟器上试试这个