文章来源: http://www.itnose.net/detail/6251003.html
更多文章: http://www.itnose.net 1、本机测试环境

android 4.3,
android:targetSdkVersion : 12,13,17

2、关于横竖屏切换的Activity生命周期的错误说法

初学Android,在学习Activity的生命周期时,自己在本机实验时,发现了一些不合理的情况。
那就是在横竖屏切换时,Activity并不会像网上大多数人所说的那样:

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

我自己写了个测试程序,见前面我写的Activity生命周期(一、二)。之后根据我的结果,又查了很多资料,终于知道了为什么出现不同结果。
得到下面结果:

  • 不设置android:configChanges时,切屏会重新调用各个生命周期(详细说明见Activity生命周期(一)),但不管是切横屏,还是竖屏,都是一次。
  • 设置android:configChages=”orientation”时,结果和不设置一样,仍然是重新调用,而且横竖屏都是一次。
  • 设置为android:configChanges=”orientation|keyboardHidden”时,结果如下:
    a. android:targetSdkVersion <= 12时,不会重新创建
    b. android:targetSdkVersion > 12时,和不设置一样,重新创建。
    c. 该点是网上获得的资料,没测试。在4.0以下的是不重建,而4.0以上的则为a,b所叙述。本测试机器为4.3。
  • 设置Activity的android:configChanges=”orientation|keyboardHidden|screenSize”时,不重新创建Activity。
  • 最后补充一点说明,重新创建是指,当前你启动了一个Actvity(onCreate?>onStart?>onResume),此时切换屏幕时,会销毁当前Activity,重新生成一个。
    (即onPause?>onStop?>onDestory?>onCreate?>onStart?>onResume)
3、总结

在现在android普遍都是>4.0的版本下,以前的结论基本上都是错误的。出现这种情况,是因为很多人都是盲目的复制别人的结论、文章,而重来不会自己验证下而导致的。
所以还是不要人云亦云,还是要自己多实践才行。


更多文章: http://www.itnose.net/type/85.html

更多相关文章

  1. Edittext 设置
  2. android中去掉标题栏和状态栏
  3. Android(安卓)Map开发基础知识学习笔记
  4. tools:context=".MainActivity的作用
  5. android 图片设置圆角
  6. Linkify匹配电话号码,Email等
  7. Linkify匹配电话号码,Email等
  8. Android(安卓)之 Gallery
  9. 让ImageView全部适应ScrollView

随机推荐

  1. android快捷键
  2. android 回车键事件编程
  3. Android中的SQLite使用学习
  4. Android有两种方法检测USB设备插入
  5. android 日常 (十六)
  6. 【Android】Broadcast控制音乐暂停继续等
  7. android之AnimationDrawable
  8. 我的第一个Android(安卓)多媒体的Demo
  9. Android中RelativeLayout各个属性的含义
  10. Android系统源码基础知识讲解