gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 01:34:50 26 4
gpt4 key购买 nike

我正在尝试通过带有 Intent 标志的 startActivity 方法清除堆栈上的每个 Activity :(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY)

(我有一个退出按钮,可以重置并完成所有 Activity ,我尝试了所有“如何制作退出按钮,如何终止应用程序”问题/答案。由于 singleInstance,它们对我没有帮助 launchMode MainActivity 配置。

通常这应该可以工作并自动完成当前 Activity ,而无需调用 finish()。但是,由于我在 AndroidManifest.xml 中将 MainActivity 标记为 singleInstance,它不起作用。如果我删除 singleInstance,它会按预期工作。

如果我在启动 MainActivity 之后/之前手动调用 finish() 以清除所有堆栈,finish() 将返回应用到堆栈上的上一个 Activity 。但是我已经启动了 MainActivity。所以一切都变得一团糟。

(我尝试添加 Intent.FLAG_ACTIVITY_SINGLE_TOPIntent.FLAG_ACTIVITY_MULTIPLE_TASK 只是为了看看它是否改变了什么,但它没有)

我需要一个适用于 singleInstance 并且不需要手动 finish() 的解决方案。

更新 1:我尝试从 SingleTop Activity 启动这个Intent(但改变它没有任何改变)

更新 2:我在 Android 2.3.3 模拟器上尝试这个

最佳答案

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

示例:

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

关于android - 如何清除 Android 上 SingleTop SingleInstance MainActivity 上的堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28968581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com