尽可能简单地布置它。我的用户通过 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/