ライフサイクル再学習
Activityのライフサイクル、いろんなところで解説を見かけるけど、何をするとどの状態に遷移するのかという観点で解説してあるものは案外少ない。
操作とイベントの対応関係という視点でライフサイクルをまとめなおしてみた。
操作ごとのイベント
1. アプリケーション起動
onCreate()
↓
onStart()
↓
onResume()
を経て実行状態になる。
2. スクリーンタイムアウト
実行状態からスクリーンタイムアウトが発生すると、
onSaveInstanceState()
↓
onPause()
が発生する。
復帰のときは逆向きのイベントが発生し、
onResume()
↓
実行状態
となる。
3. Homeボタン
実行状態からHomeボタンを押すと
onSaveInstanceState()
↓
onPause()
↓
onStop()
が発生する。
アイコンをタップすると、
onRestart()
↓
onStart()
↓
onResume()
↓
実行状態
となる。onStart()の前にonRestart()というイベントが発生するところがポイント。っていうか、Androidのライフサイクル管理の覚えにくいところ。
4. 画面の回転
実行状態から画面の回転が発生すると、onSaveInstanceState()
↓
onPause()
↓
onStop()
↓
onDestroy()
↓
onCreate()
↓
onStart()
↓
onResume()
と、いったんonDestroy()まで発生したのち、逆向きにonCreate()から発生する。
5. 戻るボタン
実行状態から「戻る」ボタンを押すと、
onPause()
↓
onStop()
↓
onDestroy()
というイベントが発生する。いわゆる「アプリケーションの終了」という操作に一番近いのがこれでしょう。しかし、直感的にはもっとも「ユルい」操作に思えてしまうのが、これまたAndroid開発の覚えにくいとこ。
0 コメント:
コメントを投稿