Android旋转屏幕属于老生常谈的问题,熟悉Activity生命周期的人肯定清楚当屏幕旋转时生命周期变化为:
onPause–>onStop–>onDestroy–>onCreate–>onStart–>onResume
这里需要强调一点是旋转屏幕时调用onDestroy方法,这相当于将当前Activity销毁了而后又重新创建Activity。这就引起了很多的问题如当前Activity的数据以及状态丢失的情况。在先前Google给出了解决方案即提供了onSaveInstanceState(Bundle)方法,通过Bundle来保存当前Activity的状态。但是这种方法仍不是最简单的方法,后来Google又提供了通过修改配置文件的方式来禁止旋转屏幕Activity状态丢失的方法即在Activity的配置文件中添加如下的配置。

android:configChanges="keyboardHidden|orientation|screenSize"

这样就很有效的防止了屏幕旋转造成Activity刷新丢失状态,可以说这是很简单且有效的方式。但是这里要强调一点的是这种方法并不会一劳永逸的对于那些加载过多第三方数据的Activity如此可能造成数据加载不完的情况。所以最保险的还是重写onSaveInstanceState方法在这里保存Activity状态。

更多相关文章

  1. Android(安卓)PowerManagerService分析
  2. 获取Google Maps API 指纹证书时获取的是SHA1型的,而认证时需要的
  3. Android四大组件之 BroadcastReceiver
  4. android中BroadCastReceiver使用(广播的接受和发送)
  5. android 透明状态栏与沉浸式
  6. Android(安卓)Camera数据流分析全程记录(非overlay方式)
  7. Android技术周报190310期 —— onSaveInstanceState到底做了些什
  8. Android中MPAndroidChart自定义绘制最高点标识的方法
  9. 理解 Java 的 GC 与 幽灵引用

随机推荐

  1. 企业级使用LAMP源码安装教程
  2. MySQL数据库体系架构详情
  3. 浅谈MYSQL主键约束和唯一约束的区别
  4. MySQL多实例安装开机自启动服务配置过程
  5. mysql5.7单实例自启动服务配置过程
  6. MySQL数据库主从复制原理及作用分析
  7. MySQL 基础常用命令总结
  8. MySQL示例DTID主从原理解析
  9. 为什么mysql自增主键不是连续的
  10. 浅谈Mysql主键索引与非主键索引区别