横竖屏切换


1 切换到横屏
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume


2 切换到竖屏,销毁了两次
onSaveInstanceState
onPause
onStop
onDestroyonCreate
onStart
onRestoreInstanceState
onResume
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume




3 修改AndroidManifest.xml,把该Activity添加 android:configChanges="orientation",切横屏,只销毁一次。


onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume


4 再切回竖屏,发现不会再打印相同信息,但多打印了一行onConfigChanged


onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
onConfigurationChanged


5 更改 android:configChanges="orientation" 改成 android:configChanges="orientation|keyboardHidden",切横屏,就只打印onConfigChanged


onConfigurationChanged


6 切回竖屏


onConfigurationChanged
onConfigurationChanged


总结:


1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次


2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次


3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法。(执行这个方法,必须设置sdk version 大于等于13.0)



附:设置android:screenOrientation="portrait"则无论手机如何变动,拥有这个属性的activity都将是竖屏显示。
同样的,android:screenOrientation="landscape",为横屏显示。

更多相关文章

  1. Android 通知Notification的两种实现方法
  2. android监听键盘弹出or隐藏方法
  3. Android 图片压缩的方法大全
  4. android Gide加载webp图片方法
  5. Android Battery一些信息获取方法
  6. android之activity生命周期示例
  7. CheckBox android:paddingLeft 不兼容问题解决方法
  8. android http-post方法简单实现
  9. Android 后台线程调用前台线程的几种方法

随机推荐

  1. Android(安卓)Cause: org.jetbrains.plug
  2. Android--SoLoader,android动态加载so库
  3. Android Activity的启动
  4. 第三章 Android程序设计基础
  5. android 3dmax
  6. Android 报错:Caused by: android.os.File
  7. Android使用Retrofit进行网络请求
  8. Android 给 app默认权限(不弹窗申请权限)
  9. Android(安卓)到底是个什么东西?
  10. Android 触摸提示音