对 于 读 写 数 据 , 一 般 在
Activity.onCreate() 或
Activity.onResume 时进行数据加载,在 Activity.onPause 写数
据。因为
Activity.onPause 调用后,组件处于可回收状态,资源紧
张时,可回收。
状态组件
状态数据是用户与界面组件交互过程产生的临时数据。不会被持
久化。状态数据暂存内存,若组件被回收,数据将丢失。
为此,
Android 的界面组件提供了事件函数,帮助开发者保存
状态数据。当系统将界面切离前台组件
(Activity.onPause 调用前),
调用
Activity.onSaveInstanceState,在该函数中,开发者可以
将组件的状态写入参数
onState 中,onState 是 Bundle 类型。
但
Activity.onSaveInstanceState 不会每次都调用,如用户
点击回退键或者
Activity.finish()主动调用时,因为这意味着当前的
状态被用户主动放弃。
如果组件被回收,缓存的数据会在组件界面被重新构造时通过
Activity.onCreate() 传入。其中的 savedInstanceState 参数与
onState 参数对象完全一致。若 savedInstanceState 为空,说明
是一次全新的构造,反之是恢复性构造。
savedInstanceState
对
象
还
可
以
通
过