Activityロック状態でのライフサイクル
Activityロック状態でのライフサイクル
Activityライフサイクルについて2つお話ししましたが、興味のある方はご覧ください.この記事では、Activityが画面をロックした状態でのライフサイクルについて説明します.スクリーンロック状態については、画面方向が変更されない場合と、リストファイルに設定されていない場合、画面方向が変更される場合の2つに分けて考えます.
インベントリファイルに画面方向が指定されている場合、Activityが画面をロックして開くときに実行する方法と手順は、MainActivity onPause----->MainActivity onStop----->MainActivity onRestart----->MainActivity onStart->>MainActivity onResume
インベントリファイルに画面が設定されていない場合、Activityが画面をロックするときに実行する方法と手順は、MainActivity onPause----->MainActivity onStop----->MainActivity onDestory----->MainActivity onCreate->>MainActivity onStart->>MainActivity onResume->>MainActivity onPauseが破棄された後に新規作成されます.
画面を開くときにActivityが実行する方法と手順は、MainActivity onResume->>MainActivity onPause->MainActivity onStop->MainActivity onDestory->MainActivity onCreate->MainActivity onStart->>MainActivity onResumeです.この場合、スクリーンをロックしてから再び画面を開くと、2回破棄され、2回再構築されます.
第2のケースの解決策:リストファイルのactivityラベルの下に
補足:
1、landscapeはスクリーン横方向、portraitはスクリーン縦方向にandroid:screenOrientation属性設定
2、 android:configChanges="keyboardHidden|orientation"
この2つの文は横画面と縦画面を設定し、画面切り替え時にデフォルトでOnCreateメソッドを再実行します.configChangeを設定すると、onCreateメソッドは再実行されず、2回の破棄は作成されません.
Activityの縦画面切り替えについてはこちらのブログをご覧くださいhttp://www.cnblogs.com/yishujun/archive/2016/04/15/5395266.html
Activityライフサイクルについて2つお話ししましたが、興味のある方はご覧ください.この記事では、Activityが画面をロックした状態でのライフサイクルについて説明します.スクリーンロック状態については、画面方向が変更されない場合と、リストファイルに設定されていない場合、画面方向が変更される場合の2つに分けて考えます.
インベントリファイルに画面方向が指定されている場合、Activityが画面をロックして開くときに実行する方法と手順は、MainActivity onPause----->MainActivity onStop----->MainActivity onRestart----->MainActivity onStart->>MainActivity onResume
インベントリファイルに画面が設定されていない場合、Activityが画面をロックするときに実行する方法と手順は、MainActivity onPause----->MainActivity onStop----->MainActivity onDestory----->MainActivity onCreate->>MainActivity onStart->>MainActivity onResume->>MainActivity onPauseが破棄された後に新規作成されます.
画面を開くときにActivityが実行する方法と手順は、MainActivity onResume->>MainActivity onPause->MainActivity onStop->MainActivity onDestory->MainActivity onCreate->MainActivity onStart->>MainActivity onResumeです.この場合、スクリーンをロックしてから再び画面を開くと、2回破棄され、2回再構築されます.
第2のケースの解決策:リストファイルのactivityラベルの下に
android:configChanges="orientation|screenSize"
を配置する.注意アプリケーションラベルの下では構成が機能しません.補足:
1、landscapeはスクリーン横方向、portraitはスクリーン縦方向にandroid:screenOrientation属性設定
2、 android:configChanges="keyboardHidden|orientation"
この2つの文は横画面と縦画面を設定し、画面切り替え時にデフォルトでOnCreateメソッドを再実行します.configChangeを設定すると、onCreateメソッドは再実行されず、2回の破棄は作成されません.
Activityの縦画面切り替えについてはこちらのブログをご覧くださいhttp://www.cnblogs.com/yishujun/archive/2016/04/15/5395266.html