【发布时间】:2014-03-05 19:17:18
【问题描述】:
尽可能简单地布置它。我的用户通过 Activity A 进入应用程序。他们“登录”,然后启动 Activity B,使用 finish() 完成 Activity A,这样用户就无法通过从 Activity B 按下返回来返回登录屏幕。现在在活动 B 中,他们移至活动 C,在活动 C 中,我希望他们开始一个新的意图,该意图将启动活动 A,但“杀死”/“完成”所有其他活动。我能想到的唯一方法是使用 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);
【问题讨论】:
标签: android android-intent back-stack