Android solve设备(手机)旋转过程中出现程序中断问题
16lz
2021-01-23
参考自:《Android权威编程指南》第3章 Activity的生命周期
原因:
设备旋转时,会改变设备配置,当前Activity实例会被销毁,然后创建一个新的Activity实例。
(设备配置是用来描述设备当前状态的一系列特征,包括:屏幕的方向/屏幕的密度/屏幕的尺寸/键盘类型/底座模式及语言等等)
只要在应用运行中设备配置发生了改变,Android就会销毁当前activity,然后再新建一个activity。
另外,在应用运行中,虽然会发生可用键盘或语言的改变,但设备屏幕方向的改变是最为常见的场景
solve方法:
设备旋转前保存数据
Activity方法:
@Override protected void onSaveInstanceState(Bundle outState)
该方法通常在onPuase()/onStop()及onDestroy()方法之前由系统调用。
方法onSaveInstanceState()默认的实现要求所有activity的视图将自身状态数据保存在Bundle对象中。Bundle是存储字符串键与限定类型值之间映射关系(键-值对)的一种结构
实现过程:
通过覆盖onSaveInstanceState()方法,将一些数据保存在Bundle中,然后在onCreate()方法中取回这些数据。
注意:Bundle中存储和恢复的数据类型只能是基本数据类型(primitive type)以及可以实现Serializable接口的对象。故创建自己的定制类时,如需在onSaveInstanceState()方法中保存类对象,记得实现Serializable接口
更多相关文章
- 定制android设备启动后进入的初始界面
- android开发AVD配置target为unknown(设备红米note4x)
- android studio运行编译速度慢的解决方法
- [手机取证] 绕过屏幕锁定启用调试模式-For Android 4.4.2
- android中共享全局数据的方法
- Android的内存优化方法
- 原来Android还可以这样通过反射,获取jar包属性及方法
- android的intent使用方法
- Android中集成第三方库的方法和问题