老版本总结:

1.不设置Activity的android:configChanges时 切屏会重新调用生命周期的方法,切横屏调用1次 切竖屏调用2次

2.设置Activity的android:configChanges ="orientation"时,切横屏和竖屏都是调用1次生命周期

3.设置Activity的android:configChanges = "orientation|KeyboardHidden"时切屏不会调用生命周期的方法,只会调用onConfigurationChanged方法

api13以上发生了变化(转发自:http://www.cnblogs.com/xiaoQLu/p/3324503.html)

如果想解决横竖屏切换时,activity不重新创建,需要在manifest中配置android:configChanges="orientation|keyboardHidden"属性,当然在api>13的时候,你需要额外添加一个参数,就是screenSize ,不添加这个,在api 13以上的手机是不会生效的。

 1)api不同重新创建Activity的生命周期也有差别

      a)2.3上:onSaveInstanceState->onPause->onStop->onCreate->onStart->onRestoreInstanceState->onResume

      b)4.0上(3.2我没测试,只测试了4.0的):onPause->onSaveInstanceState->onStop->onCreate->onStart->onRestoreInstanceState->onResume

    2)不重新创建activity,只会调用onConfigurationChanged

targetSdkVersion会影响生命周期,targetSdkVersion在12及以下的话,设置了android:configChanges="orientation|keyboardHidden" ,在机器上都不会重新创建activity,只会调用onConfigurationChanged,如果设置targetSdkVersion>12的话,只在sdkVersion<=12的机器上有效果,>12的机器上activity还是会重新创建(需要加上screenSize才有效果)

新版总结:

(1)设置android:configChanges="orientation"和不设置这个属性,生命周期表现为重新创建activity

(2)设置android:configChanges="orientation|keyboardHidden",在2.3上表现为不重新创建activity,4.0如下

  a)android:targetSdkVersion<="12",生命周期表现为不重新创建activity

  b)android:targetSdkVersion>"12",表现为重新创建activity

(3)设置android:configChanges="orientation|keyboardHidden|screenSize",在2.3和4.0上都表现为不重新创建

其余情况:


当前Activity产生事件弹出Toast和AlertDialog的时候Activity的生命
周期不会有改变
Activity运行时按下HOME键(跟被完全覆盖是一样的):onSaveInstanceState -->
onPause --> onStop onRestart -->onStart--->onResume
Activity未被完全覆盖只是失去焦点:onPause--->onResume

更多相关文章

  1. Android 搜索框:SearchView 的属性和用法详解
  2. 横竖屏切换时候activity的生命周期
  3. Android 中Popwindow弹出菜单的两种方法实例
  4. 整理分享ImageView属性大全
  5. android 一 android 的生命周期
  6. Android中线程的使用方法
  7. android中ImageView的ScaleType属性

随机推荐

  1. Android触摸事件传递机制
  2. 关于android的Notification的若干问题
  3. android 集合与json之间的相互转换
  4. Android | 代码混淆到底做了什么?
  5. Android 蓝牙开发研究
  6. 一起学android之DigitalClock与TextClock
  7. Android 消息机制学习
  8. android中在java代码中设置Button按钮的
  9. Android 工程目录结构介绍
  10. vue H5与(Android、iOS)原生APP交互