アクティビティのライフサイクル
アクティビティ (Activity) はユーザーインターフェイススクリーンのことです。アプリケーションでは一つ以上のアクティビティを定義することができます。
アンドロイドではある時間使用していないときに、バッテリーの使用量を節約するために、自動的に画面を非アクティブな状態にしたりします。
また、メモリが足りないときには非アクティブなプログラムを終了したりもします。
Android アプリケーションを開発するには、こうした画面の状態変化に合わせて、必要なデータを保存したり、データを元にもどしたりする必要があります。
ここではアクティビティの状態の種類と、その状態変化に伴ってどのようなイベントが発生するか説明します。
アクティビティの状態
アクティビティは次の状態になります。
- 開始 (Starting)
- 実行中 (Running)
- 一時停止 (Paused)
- 停止中 (Stopped)
- 終了 (Destroyed)
そして、それぞれの状態遷移に伴い、下表のようなイベントが発生します。イベントは onCreate, onStart, ... などと onXXX として書いています。
注意しなければならないのは、プログラムが終了するまでに必ずしも、一時停止 → 停止 → 終了とはならない点です。 システムのリソース状態によっては停止状態がスキップされて、終了する場合もあります。
このため、実行状態から一時停止、または停止になる際に必要なデータ保存等の処理は onPause で行うと良いでしょう。
また、図で見て分かるように実行中 (Running) に入る際には、onResume が呼ばれます。したがって、プログラムで継続的に必要な処理 (アニメーションやメディアの再生等) は onResume で開始すると良いでしょう。