【发布时间】:2014-03-17 00:05:58
【问题描述】:
来自 Android 文档:
FLAG_ACTIVITY_CLEAR_TASK
如果在传递给 Context.startActivity() 的 Intent 中设置,此标志将 导致与活动相关联的任何现有任务 在活动开始之前被清除。也就是活动 成为一个空任务的新根,任何旧的 活动结束。这只能与 FLAG_ACTIVITY_NEW_TASK。
和
FLAG_ACTIVITY_TASK_ON_HOME
如果在传递给 Context.startActivity() 的 Intent 中设置,此标志将 导致新启动的任务被放置在当前家的顶部 活动任务(如果有的话)。也就是说,从任务中退缩 即使这不是最后一次,也将始终将用户送回家 他们看到的活动。这只能与 FLAG_ACTIVITY_NEW_TASK。
考虑这两个 sn-ps:
Intent intent = new Intent(this, Activity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
和
Intent intent = new Intent(this, Activity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME);
startActivity(intent);
按照我的理解,在任一代码 sn-p 中,我们都会创建一个新任务,其中只有 Activity,当您按下返回时,您会转到主屏幕。假设我可能弄错了,两者之间有什么区别?另外,如果我有另一个带有Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME | Intent.FLAG_ACTIVITY_CLEAR_TASK 的 sn-p,那会怎么样?
【问题讨论】: