我尝试使用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()
。所以一切都搞砸了。
(我尝试添加MainActivity
和Intent.FLAG_ACTIVITY_SINGLE_TOP
,只是为了看它是否有任何变化而且它没有“
我需要一个适用于Intent.FLAG_ACTIVITY_MULTIPLE_TASK
并且不需要手动singleInstance
的解决方案。
更新1:我尝试从finish()
活动启动此Intent
(但更改它不会改变任何内容)
更新2:我在Android 2.3.3模拟器上试用
答案 0 :(得分:0)
您可以尝试finishAffinity(),它将关闭堆栈中的所有先前活动
示例:
Intent intent = new Intent(MainActivity.this, MyActivity.class);
finishAffinity()
startActivity(intent);