横竖屏切换时Activity的生命周期

横竖屏切换时Activity的生命周期

不设置android:configChanges

切换为横屏:


横竖屏切换时Activity的生命周期_第1张图片
8d646bb3-be3b-4216-9c2d-fbc1a5ad2fe8.png

onPause:
onSaveInstanceState:
onStop:
onDestroy:
onCreate:
onStart:
onRestoreInstanceState:
onResume:


切换为竖屏(生命周期同上)

横竖屏切换时Activity的生命周期_第2张图片
68591f47-6457-4960-bbfb-ebb4b270b911.png

onPause:
onSaveInstanceState:
onStop:
onDestroy:
onCreate:
onStart:
onRestoreInstanceState:
onResume:


清单文件中单独设置:
android:configChanges="orientation"

效果还跟上面一样


清单文件中设置:
android:configChanges="orientation|keyboardHidden"

android:configChanges="keyboardHidden|screenSize"

效果还跟上面一样


清单文件中设置:

android:configChanges="orientation|screenSize"

android:configChanges="orientation|keyboardHidden|screenSize"

不调整生命周期


以上数据在模拟器4.1,5.0,6.0,7.0测出.


总结:

当横竖屏切换时,会正常的重走一次生命周期的回调方法:

  • onPause:
  • onSaveInstanceState:
  • onStop:
  • onDestroy:
  • onCreate:
  • onStart:
  • onRestoreInstanceState:
  • onResume:

如果不想在横竖屏切换的时候调整生命周期,清单文件中配置:
android:configChanges="orientation|screenSize"
就够了!


33a3731c-6737-408a-a84c-d88943377467.jpg

在没有配置android:configChanges时,可以在onSaveInstanceState中保存数据,在onRestoreInstanceState中恢复数据.


你可能感兴趣的:(横竖屏切换时Activity的生命周期)