是否可以在StartActivityForResult()中启动一个活动并在她运行结果时保存这个新活动的状态?
例如:
Activity A 通过 StartForResult 启动 Activity B,当 Activity B 完成工作并返回适当的值时,我可以使用 B OnSaveStanceState保存 Activity 的状态吗?
问问题
391 次
2 回答
0
那是不可能的。Activity 的生命周期在它们完成时停止。活动退出时不会调用 OnSaveInstanceState。您可以尝试获取活动 A 中的当前状态并将其传递给新的活动 B,以便您可以重建旧状态。
于 2013-03-20T15:43:52.627 回答
0
不,在这种情况下实际上OnSaveInstanceState
甚至不会被调用。
OnSaveInstanceState
如果活动因内存不足、方向变化等原因被操作系统终止,则调用该活动。
但是由于您使用B 启动BStartActivityForResult
,因此您始终可以在B完成之前通过调用手动保存B的状态。这完全取决于您需要保存BIntent.PutExtra
中的哪种状态。然后A将获得状态,您可以稍后使用它。
于 2013-03-20T18:34:54.263 回答