Android-旋转屏幕前保存数据

适时的使用备选资源虽然是Android提供的比较完美的解决方案,但是设备旋转导致的activity销毁与重建也会带来麻烦。因此,在设备运行过程中发生配置变更时,如设备旋转,需采用某种方式保存以前的数据。
覆盖以下Activity方法就是其中一种实现方式:

protected void onSaveInstanceState(Bundle outState)

该方法一般在onPause(),onStop(),以及onDestory()方法之前由系统调用。该方法的默认实现是要求所有activity的视图将自身的状态数据保存在Bundle中,Bundle是存储字符串键与限定类型值之间映射关系的一种结构。
在覆盖onCreate()方法时,我们实际是在调用activity超类的onCreate(…)方法,并传入收到的bundle。

覆盖onSaveInstanceState(Bundle)方法时,应该测试activity状态是否如预期正确保存和恢复,使用模拟器可能很容易实现。启动模拟器,找到Settings应用,点击Development Options,并启用don’t keep activities选项。现在运行应用,单击主屏幕键,会暂停并停止当前activity,停止的activity会被系统销毁,可通过重新启动应用验证activity状态是否得到保存。

你可能感兴趣的:(Android)