是否可以在 StartActivityForResult()中启动活动并在运行结果时保存此新活动的状态?
例如:
活动A通过StartForResult启动活动B,当活动B完成其工作并返回适当的值时,我可以用B OnSaveStanceState 保存活动的状态吗?
答案 0 :(得分:0)
多数民众赞成不可能。活动的生命周期在完成后停止。活动退出时不会调用OnSaveInstanceState。您可以尝试获取活动A中的当前状态并将其传递给新的活动B,以便您可以重建旧状态。
答案 1 :(得分:0)
不,实际上OnSaveInstanceState
在这种情况下甚至不会被调用。
OnSaveInstanceState
被称为 iff 活动被操作系统杀死,原因是内存不足,方向改变等。
但是,由于您使用StartActivityForResult
启动 B ,因此您可以在完成之前通过调用Intent.PutExtra
来手动保存 B 的状态。这完全取决于您需要保存的 B 中的哪种状态。然后 A 将获得该状态,您可以稍后再使用它。