简短问题:是否可以使用onSaveInstanceState()
方法保存数据,然后在Activity上调用finish()
,并在下次启动活动时将数据恢复到{ {1}}?或者savedInstanceState
是否意味着数据已消失?
如果第一个答案是正确的,我在实施中遇到了一些问题,因为尽管数据已保存,但我在finish()
中收到了null
。如果第二个答案是正确的,我将不得不重新思考如何将我的活动连接在一起:o)
答案 0 :(得分:5)
是否可以使用onSaveInstanceState()方法保存数据,然后在Activity上调用finish()并在下次启动Activity时将数据恢复到savedInstanceState中?
没有
或者,活动的结束()意味着数据消失了吗?
是。保存的实例状态Bundle
适用于从用户的角度来看,您的活动仍然存在但由于技术原因而被销毁的情况:
如果因其他原因调用finish()
- 您直接调用它,用户按BACK等等 - 然后不再需要保存的实例状态,可以将其丢弃。
因此,保存的实例状态Bundle
用于您希望保留的瞬态数据,但是在面对配置更改和进程终止时很容易丢失,例如部分填充的内容 - 形式。