Android笔记:onSaveInstanceState和onRestoreInstanceState总结
2016-07-29 18:59
309 查看
一、方法调用时间
onSaveInstanceState是用来保存UI状态,在Activity杀死之前,它一般在onStop或者onPause之前触发;
onRestoreInstanceState是在onResume之前触发来恢复状态;
Activity被杀死了,onCreate会被调用,且onRestoreInstanceState在 onResume之前恢复上次保存的信息;
Activity没被杀死,onCreate不会被调用,但onRestoreInstanceState 仍然会被调用,在 onResume之前恢复上次保存的信息;
二、方法使用场景
onSaveInstanceState() 只有在Acitivity被系统kill掉时才会调用。所以通常onSaveInstanceState()只适合用于保存一些临时性的状态,而onPause()适合用于数据的持久化保存。
onSaveInstanceState()方法只适合保存瞬态数据, 比如UI控件的状态, 成员变量的值等,而不应该用来保存持久化数据,持久化数据应该当用户离开当前的activity时,在onPause()中保存(比如将数据保存到数据库或文件中)。说到这里,还要说一点的就是在onPause()中不适合用来保存比较费时的数据,所以这点要理解。
由于onSaveInstanceState()方法方法不一定会被调用, 因此不适合在该方法中保存持久化数据, 例如向数据库中插入记录等. 保存持久化数据的操作应该放在onPause()中。若是永久性值,则在onPause()中保存;若大量,则另开线程吧,别阻塞UI线程。
三、使用方法
1.在onSaveInstanceState方法中保存bundle:
2.在oncreate或者onRestoreInstanceState方法中读取保存的bundle:
onSaveInstanceState是用来保存UI状态,在Activity杀死之前,它一般在onStop或者onPause之前触发;
onRestoreInstanceState是在onResume之前触发来恢复状态;
Activity被杀死了,onCreate会被调用,且onRestoreInstanceState在 onResume之前恢复上次保存的信息;
Activity没被杀死,onCreate不会被调用,但onRestoreInstanceState 仍然会被调用,在 onResume之前恢复上次保存的信息;
二、方法使用场景
onSaveInstanceState() 只有在Acitivity被系统kill掉时才会调用。所以通常onSaveInstanceState()只适合用于保存一些临时性的状态,而onPause()适合用于数据的持久化保存。
onSaveInstanceState()方法只适合保存瞬态数据, 比如UI控件的状态, 成员变量的值等,而不应该用来保存持久化数据,持久化数据应该当用户离开当前的activity时,在onPause()中保存(比如将数据保存到数据库或文件中)。说到这里,还要说一点的就是在onPause()中不适合用来保存比较费时的数据,所以这点要理解。
由于onSaveInstanceState()方法方法不一定会被调用, 因此不适合在该方法中保存持久化数据, 例如向数据库中插入记录等. 保存持久化数据的操作应该放在onPause()中。若是永久性值,则在onPause()中保存;若大量,则另开线程吧,别阻塞UI线程。
三、使用方法
1.在onSaveInstanceState方法中保存bundle:
相关文章推荐
- Android开发学习笔记:Button事件实现方法的总结
- Android笔记-ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)
- Android总结笔记02:仿百度贴吧楼层回复功能(含表情)
- Android总结笔记05:Activity的切换方式(从底部弹出,退出时从顶部滑出)
- Android总结笔记04:仿QQ空间登录UI,解决软键盘弹出挡住输入框的问题
- Android笔记-ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)
- Android之旅 笔记总结(一)
- Android总结笔记01:自定义View学习(一)
- Android开发笔记 Handler使用总结
- Android之旅 笔记总结(一)
- Android笔记 SQLite总结 ,字带数据库,附记事本,字典小程序
- Android笔记-ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)
- Android笔记 SQLite总结 ,字带数据库,附记事本,字典小程序
- Android笔记-ListView总结
- Android笔记-ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)
- Android笔记-ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)
- Android笔记-ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)
- Android笔记-ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)
- Android笔记:Button居中|水平居中|垂直居中(总结)
- Android笔记-ListView总结(多选框ListViiew,动态加载,多线程更新ListView中的进度条)