在Intent上设置标志的含义

时间:2010-12-09 12:29:18

标签: android

我在一个单独的OnClickListener类中调用了context.startActivity(intent)。为了实现这一点,我必须在意图上设置FLAG_ACTIVITY_NEW_TASK。

这一切都按预期工作,但我想知道这样做是否有任何影响,我不知道。这会在性能方面产生任何问题吗?它是否反映了我的糟糕设计?

您怎么看?

1 个答案:

答案 0 :(得分:0)

From the Android docs:“此标志通常由想要呈现”启动器“样式行为的活动使用:它们为用户提供可以完成的单独事物的列表,否则完全独立于活动运行推出它们。“

More from the Android docs:“请注意,如果从Activity Context外部调用此方法,那么Intent必须包含FLAG_ACTIVITY_NEW_TASK启动标志。这是因为,没有从现有Activity启动,没有放置新活动的现有任务,因此需要将其放在自己独立的任务中。“

当您每次启动一个新活动并将其添加到堆栈时,如果您离开该活动然后使用onClickListener启动另一个活动,则可能存在启动另一个活动而不是恢复上一个活动的风险。我认为将标志更改为FLAG_ACTIVITY_RESET_TASK_IF_NEEDED应该可以解决此问题。