[关闭]
@ZeroGeek 2015-09-07T05:06:56.000000Z 字数 2243 阅读 564

Activity生命周期之横竖屏切换

基础知识


下面讨论 API 12 以上的情况
(之前是不需要设置screenSize,并且可能与下面不一样)

关键在于 Activity中的一个属性configChanges(可以不写)

  1. <activity
  2. android:name=".activities.FirstActivity"
  3. android:configChanges="orientation"
  4. />

1. 未设置configChanges,一般情况

  1. 启动Activity,竖屏

    09-07 12:44:45.545 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onCreate First
    09-07 12:44:45.555 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onStart First
    09-07 12:44:45.555 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onResume First

  2. 竖屏切换至横屏

    09-07 12:45:59.235 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onPause First
    09-07 12:45:59.235 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onSaveInstanceState First
    09-07 12:45:59.235 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onStop First
    09-07 12:45:59.235 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onDestroy First
    09-07 12:45:59.375 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onCreate First
    09-07 12:45:59.385 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onStart First
    09-07 12:45:59.385 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onRestoreInstanceState First
    09-07 12:45:59.385 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onResume First

  3. 由横屏切换竖屏

    09-07 12:48:00.815 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onPause First
    09-07 12:48:00.815 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onSaveInstanceState First
    09-07 12:48:00.815 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onStop First
    09-07 12:48:00.815 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onDestroy First
    09-07 12:48:00.925 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onCreate First
    09-07 12:48:00.925 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onStart First
    09-07 12:48:00.925 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onRestoreInstanceState First
    09-07 12:48:00.925 28409-28409/com.zero.androidtranningdemo D/FirstActivity﹕ onResume First

2. 修改configChanges为

(一般广告SDK中使用)

android:configChanges="orientation|screenSize"

只会调用一个方法

09-07 12:57:41.295 9776-9776/com.zero.androidtranningdemo D/FirstActivity﹕ onConfigurationChanged

  1. @Override
  2. public void onConfigurationChanged(Configuration newConfig) {
  3. super.onConfigurationChanged(newConfig); //必须写上
  4. Log.d(TAG, "onConfigurationChanged");
  5. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注