1

是否可以在StartActivityForResult()中启动一个活动并在她运行结果时保存这个新活动的状态?
例如:
Activity A 通过 StartForResult 启动 Activity B,当 Activity B 完成工作并返回适当的值时,我可以使用 B OnSaveStanceState保存 Activity 的状态吗?

4

2 回答 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 回答