android2.3 api demo 学习系列(13)--App/Activity/Save & Restore

    前面文章android2.3 api demo 学习系列(8)--App/Activity/Preference State已经介绍了如何保存ui的状态,本次学习的demo实现同样的功能只是实现的方法不一样。文章8中使用的是SharedPreferences和Activity的Onpause()、Onresume()方法结合使用保存ui的状态。本次使用的是onSaveInstanceState(Bundle savedBundle) 来保存ui状态。

    和Onpause()、Onresume()不同的是onSaveInstanceState不属于activity生命周期的一部分,onSaveInstanceState不一定会再Activity销毁前被调用:例如用户按返回键时onSaveInstanceState是不会被调用的,但是Onpause()、Onresume()是肯定被调用的,因为他们是activity生命周期的一部分。

onSaveInstanceState被执行的几种情形:

1、当前应用被切换到其他应用,系统根据资源配置可能需要销毁后台运行的activity时

2、系统参数的改变:屏幕方向发生改变,这个时候activity被销毁前会调用onSaveInstanceState。

onSaveInstanceState方法在activity销毁前将ui的状态数据保存在bundle中,activity可以在onCreate()以及onRestoreInstanceState()方法恢复ui状态。

注意:本次demo也许你会发现示例代码中根本没有涉及到onSaveInstanceState的任何代码,而且同样是edittext 为什么一个本保存了ui状态,另一个没有被保存?

这一因为onSaveInstanceState默认实现了对设置有id(android:id)的ui保存恢复状态。

代码没有可贴的 直接上效果图:


android2.3 api demo 学习系列(13)--App/Activity/Save & Restore_第1张图片

 

旋转屏幕就可以看到效果了~~


android2.3 api demo 学习系列(13)--App/Activity/Save & Restore_第2张图片

 

 

 

你可能感兴趣的:(android,api,demo)