我正在尝试通过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_TOPandIntent.FLAG_ACTIVITY_MULTIPLE_TASK只是为了看看它是否改变了任何东西,但它没有)
我需要一个可以使用singleInstance且不需要手动的解决方案finish()。
更新 1:我尝试Intent从一个SingleTop活动中启动它(但改变它不会改变)
更新 2:我在 Android 2.3.3 模拟器上试试这个