android - 如何启动一个将清除所有其他 Activity 的新 Intent?

标签 android android-intent back-stack

尽可能简单地布置它。我的用户通过 Activity A 进入应用程序。他们“登录”,然后 Activity B 启动,Activity A 使用 finish() 完成,这样用户就无法通过从 Activity B 返回登录屏幕。现在在 Activity B 中,他们移动到 Activity C,在 Activity C 中,我希望他们开始一个新的 Intent ,该 Intent 将启动 Activity A,但“杀死”/“完成”所有其他 Activity 。我能想到的唯一方法是使用 Intent Flag。到目前为止,我想出了:

Intent intent = new Intent(getActivity(), ActivityA.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
startActivity(intent);

但是上面的代码不起作用。我仍然看到我的应用程序在 Activity B 中有一个 savedInstanceState。因此,像 CLEAR_TASK 这样的东西对我来说不起作用。

编辑:另外,是否有一种简单的方法可以判断您的应用当前打开了多少“任务”?

注意:似乎还有其他可能有用的标志,但它们是在 API 11 中添加的,我需要支持 API 10。

我试过的标记组合:

不起作用

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);

不起作用

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);

最佳答案

您需要使用IntentCompat。喜欢

import android.support.v4.content.IntentCompat;
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |IntentCompat.FLAG_ACTIVITY_CLEAR_TASK);

关于android - 如何启动一个将清除所有其他 Activity 的新 Intent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22207110/

相关文章:

java - Android运行时致命异常: main amongst many other errors

android - 在android中创建自定义工具栏

android - 需要帮助在手机的默认浏览器中打开 url

java - 尝试使用通知

android - 回到主页后恢复 Activity

Android 从 Stack 恢复 Activity

android - 如何在android中为每个用户提供免费试用期

java - 如何更改操作栏标题

Android webview 无法正确呈现 html 内容

java - Android Fragment 空对象 mNextAnim 内部崩溃