Android 横屏,竖屏切换时候的状态保存


生命周期方法调用的顺序:
03-22 13:58:33.909: INFO/System.out(415): =====onPause=====
03-22 13:58:33.909: INFO/System.out(415): =====onStop=====
03-22 13:58:33.942: INFO/System.out(415): =====onDestroy=====
03-22 13:58:34.349: INFO/System.out(415): =====onCreate=====
03-22 13:58:34.349: INFO/System.out(415): =====onStart=====
03-22 13:58:34.399: INFO/System.out(415): =====onResume=====


   在每个Activity添加     Android:configChanges = "orientation|keyboardHidden"    
然后重写     public void onConfigurationChanged(Configuration newConfig)方法
则系统屏幕切换的时候不会重新加载生命周期方法而是调用 onConfigurationChanged方法
但是有问题
1.  横屏  ---->  竖屏  onConfigurationChanged   会调用一次
当  竖屏  ---->  横屏  则调用两次。   Why ???


2.  设置成android:configChanges = "orientation"的时候
横屏  ---->  竖屏   03-22 15:17:14.309: INFO/System.out(2472): =====onPause=====
                    03-22 15:17:14.309: INFO/System.out(2472): =====onStop=====
                    03-22 15:17:14.329: INFO/System.out(2472): =====onDestroy=====
       03-22 15:17:14.659: INFO/System.out(2472): =====onCreate=====
       03-22 15:17:14.713: INFO/System.out(2472): =====onStart=====
      03-22 15:17:14.719: INFO/System.out(2472): =====onResume=====


竖屏  ---->  横屏   03-22 15:19:23.949: INFO/System.out(2472): =====onPause=====
      03-22 15:19:23.949: INFO/System.out(2472): =====onStop=====
       03-22 15:19:23.949: INFO/System.out(2472): =====onDestroy=====
       03-22 15:19:24.299: INFO/System.out(2472): =====onCreate=====
    03-22 15:19:24.369: INFO/System.out(2472): =====onStart=====
            03-22 15:19:24.369: INFO/System.out(2472): =====onResume=====
    03-22 15:19:24.430: INFO/System.out(2472): =====onConfigurationChanged=====

我用真机试了一下没有出现上述的调用两次情况,有时候对这种情况真的很无语。没有条件拥有android设备的开发人员在开发应用的时候面对的未知困难太多了,谷歌公司应该多为开发人员着想,毕竟现在手机三分天下的时代任何一个微小的错误都会导致彻底的崩盘,最好的系统不一定是最成功的系统,只有用户最多的系统才是最成功的系统,想要捕捉用户就需要开发人员做出更多,更好的软件。

相关内容