Activity生命周期简介

众所周知,在Android中Activity的生命周期是这样的:

onCreate() onStart() onResume() onPause()onStop()onDestory()

我们在网上所了解的横竖屏切换生命周期是这样的

  1. 不设置Activity的Android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次。
  2. 设置Activity的android:configChanges=”orientation”时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次。
  3. 设置Activity的android:configChanges=”orientation|keyboardHidden|screenSize”时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法。

实际测试是这样的

1. 不设置Activity的Android:configChanges时:

竖屏切横屏

onPause()onStop()onDestory()onCreate() onStart() onResume() 

横屏切竖屏

onPause()onStop()onDestory()onCreate() onStart() onResume() 

2. 设置Activity的android:configChanges=”orientation”时:

竖屏切横屏

onPause()onStop()onDestory()onCreate() onStart() onResume() 

横屏切竖屏

onPause()onStop()onDestory()onCreate() onStart() onResume() 

和不设置configChanges是一样的(前提是minSdkVersion 和 targetSdkVersion大于12,小于等于12时仅会调用onConfigurationChanged()方法)

3. 设置Activity的android:configChanges=”orientation|screenSize”时:

竖屏切横屏

onConfigurationChanged()

横屏切竖屏

onConfigurationChanged()

4. 设置Activity的android:configChanges=”orientation|screenSize|keyboardHidden”时:

竖屏切横屏

onConfigurationChanged()

横屏切竖屏

onConfigurationChanged()

结论:

如果Activity不设置configChanges属性,横竖屏切换时,各生命周期均会调用一次,如果设置Activity的android:configChanges=”orientation|screenSize”,横竖屏切换时,只会调用onConfigurationChanged()。

更多相关文章

  1. android中实现view的更新UI有两组方法的问题
  2. Could not find SDK_Root\tools\adb.exe 的解决方法
  3. Android高手进阶教程(八)-------Android中两种设置全屏的方法!!!
  4. Android Studio导入.so库文件方法
  5. (转)Android 应用程序退出后不在运行列表中显示的方法
  6. Android Gallery控件使用方法详解
  7. Android 设置横屏竖屏的方法
  8. Android Activity生命周期的理解

随机推荐

  1. Android的内存优化
  2. android点击本地缩略图,弹出显示服务器原
  3. Android中的进程与多线程的讲解(Handler和
  4. Android(安卓)API Guides---Data Storage
  5. android 自定义圆形进度条(一)
  6. iOS中的抽屉菜单
  7. Android如何快速实现打渠道打包
  8. Android客户端与服务器端数据同步
  9. Android(安卓)显示GIF图片实例详解
  10. Android中弹窗中带有Edittext,软键盘遮挡