生放送プラットフォームのソフトウェア開発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だけを返します。