生放送プラットフォームのソフトウェア開発Android Activityの縦横スクリーンの切り替えライフサイクルの詳細


activityライフサイクル方法デフォルトでは、activityは作成から廃棄まで次のライフサイクルを実行します。
onCreate -->onStart–>onResumeo -->nPause -->onStop -->onDestroy
config Changes属性の詳細
1.orientation            
2.keyboardHidden        
3.screenSize        
4.fontScale             
5.locale             
6.keyboard       ,     12        
7.touchscreen navigation          ,           
     :orientation keyboardHidden screenSize,          Activity     ,    onConfigurationChanged  。
screenOrientation属性詳細
1.unspecified    ,           
2.landscape   
3. portrait   
4.user        orientation 
5. behind        Activity orientation 
6. sensor             
7. nosensor             unspecified  landscape portrait  ,             ,         。
1.Android ManifestはconfigChanges属性が設定されていません。
    : onCreate -->onStart–>onResume
    : onPause -->onSaveInstanceState -->onStop -->onDestroy -->onCreate–>onStart --> onRestoreInstanceState–>onResume -->onPause -->onStop -->onDestroy
    : onCreate -->onStart–>onResume
    : onPause -->onSaveInstanceState -->onStop -->onDestroy -->onCreate–>onStart --> onRestoreInstanceState–>onResume -->onPause -->onStop -->onDestroy
2.Android ManifestにconfigChens androidを設置しました。configChang=「orentation」
    : onCreate -->onStart–>onResume
    : onPause -->onSaveInstanceState -->onStop -->onDestroy -->onCreate–>onStart --> onRestoreInstanceState–>onResume -->onPause -->onStop -->onDestroy
    : onCreate -->onStart–>onResume
    : onPause -->onSaveInstanceState -->onStop -->onDestroy -->onCreate–>onStart --> onRestoreInstanceState–> onResume -->onPause -->onStop -->onDestroy
3.Android ManifestにconfigChangesを設置しました。
android:configChanges=“orientation|keyboardHidden|screenSize”

 ( )   :onCreate -->onStart–>onResume
   ( ) :onConfigurationChanged (Android 6.0 Android 7.0 Android 8.0
4.Android ManifestはconfigChens androidを設置しています。configChang=「orentation screenSize」
 ( )   :onCreate -->onStart–>onResume
   ( ) :onConfigurationChanged (Android 6.0 Android 7.0 Android 8.0
注意:コード動態設定縦型スクリーン状態(onConfigrationChanged画面が変化した時にリピート)
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
要約1.configChanges属性が設定されていません。現在のインターフェースはオンザブInstance Stateを呼び出して、プロセスをもう一度歩きます。その後、オンストリップInstance Stateを呼び出して、もう一度フルコースを行って、最終的にdestory。2.configChanges属性がorentationに設定された後、Android 6.0はconfigChangesが設置されていない場合と同じで、完全に二つのライフサイクルを歩き終えて、onsaveInstance StateとonResetone Instance State方法を呼び出しました。Android 7.0では、まずConfigrationChanged方法をフィードバックします。残りの流れはAndroid 6.0と一致しています。Android 8.0システムはもっと簡単で、OConfigrationChanged方法をフィードバックしただけで、Activityのライフサイクルの方法を行っていません。3.androidを設定する:configChanges=「orentation keyboardHdden screenSize」はActivityの他のライフサイクル方法を呼び出しません。ワンコンfigrationChendメソッドを呼び出すだけです。4.keyboardHddenがなくなったら、3と同じです。orentationは横画面切り替えscreenSizeを代表してスクリーンの大きさが変わりました。この二つを設定すれば、Activityのライフサイクルをリセットしない方法があります。ワンコンfigrationChangedだけを返します。