尽可能简单地列出来。我的用户通过活动A进入应用程序。他们“登录”然后启动活动B,使用finish()完成活动A,这样用户就无法通过从活动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);
答案 0 :(得分:1)
您需要使用IntentCompat
。像
import android.support.v4.content.IntentCompat;
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |IntentCompat.FLAG_ACTIVITY_CLEAR_TASK);
答案 1 :(得分:0)