为什么在从最近的应用程序返回活动时会重新传递意图?

时间:2013-12-07 16:52:50

标签: android android-intent android-activity

如果您使用Intent与附加的附加功能启动活动,请按home,然后从最近的应用列表返回该活动。

然后将再次重新传递与这些捆绑附加内容的意图。

有谁知道这种行为的原因? 使用Intent.getFlags()并检查FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY位是否明智 是开启了,如果是,请避免阅读该意图?

由于

1 个答案:

答案 0 :(得分:4)

  

有人知道这种行为的原因吗?

这就是应该发生的事情。您还会重新投放之前使用Bundle填充的onSaveInstanceState()。目标是让您向用户呈现UI,就像您一直在使用UI一样。

  

使用Intent.getFlags()并检查FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY位是否已打开是否明智,如果是,请避免读取该意图?

一般来说,我认为阅读Intent并做任何要求都是明智之举。请记住,如果Android已停止您移动到后台的应用和从最近任务列表返回应用的用户之间的流程,则可能会重新创建您的活动。

如果您需要状态信息,要确定您是否已经完成了与此操作相关的一些工作,请将其存储在onSaveInstanceState() Bundle中,或者从持久性中获取它存储。

话虽如此,如果真的需要,你肯定会在这种情况下寻找那面旗帜并做一些不同的事情。只要确保你仔细考虑并确保这对你的环境来说真的是正确的。