重制的activity还记得启动它的初衷吗?
Does a recreated activity remember the original intent started it?
在查看有关使用 onSaveInstanceState 的文档时,弹出一个问题。
假设我正在使用一个包含多个活动的应用程序,现在我处于一个由上一个活动启动的特定 activity 中。当前 activity 接受前一个的额外值。
如果我接到 phone 电话,然后导航回 activity,它会重新创建。但是它会记得之前activity启动它的初衷吗?重新创建自己后是否能够从中获取额外的变量?
为了简化事情:
Activity A 启动 Activity B(并向其传递附加信息)。然后(在 B 中)有一个来电。
我返回到应用程序,以便重新创建 B - 我是否仍然能够从原始 activity A 中获取附加信息?
是的,最简单的检查方法是在第 2 个 activity 是 运行 时旋转屏幕,它会被销毁然后重新创建,你会发现你仍然可以得到额外的。自己试试看。
是的,这将是相同的意图。
另外澄清一下,当你离开ActivityB去接电话,然后回去的时候,ActivityB不一定是重新创建的。只有当包含它的进程被杀死以回收资源时,它才会被重新创建。经常发生的情况是,在你描述的场景中,Activity B 仍然存在。
类似的讨论见:
Android - Is the intent preserved during activity recreation?
在查看有关使用 onSaveInstanceState 的文档时,弹出一个问题。
假设我正在使用一个包含多个活动的应用程序,现在我处于一个由上一个活动启动的特定 activity 中。当前 activity 接受前一个的额外值。
如果我接到 phone 电话,然后导航回 activity,它会重新创建。但是它会记得之前activity启动它的初衷吗?重新创建自己后是否能够从中获取额外的变量?
为了简化事情:
Activity A 启动 Activity B(并向其传递附加信息)。然后(在 B 中)有一个来电。 我返回到应用程序,以便重新创建 B - 我是否仍然能够从原始 activity A 中获取附加信息?
是的,最简单的检查方法是在第 2 个 activity 是 运行 时旋转屏幕,它会被销毁然后重新创建,你会发现你仍然可以得到额外的。自己试试看。
是的,这将是相同的意图。
另外澄清一下,当你离开ActivityB去接电话,然后回去的时候,ActivityB不一定是重新创建的。只有当包含它的进程被杀死以回收资源时,它才会被重新创建。经常发生的情况是,在你描述的场景中,Activity B 仍然存在。
类似的讨论见: Android - Is the intent preserved during activity recreation?