2013年5月8日水曜日

Activityの状態遷移

Activity の状態遷移についてまとめ

公式のリファレンスに状態遷移の図が乗っているのでそちらも参照
Managing Lifecycle - Android Developers
http://developer.android.com/guide/components/activities.html#Lifecycle


Activity の状態遷移


onCreate()

ユーザがアプリのアイコンをタッチすると呼び出される。
Activity の layout をセットする
インスタンス変数の初期化をする
Activity のライフサイクルにおいて1度しか実行されないメソッド
このメソッド内で finish() を実行すると、
途中のメソッドを飛ばして onDastroy() を呼び出すことができる。

Created 状態

onCreate() が終了したらこの状態になる
この状態になったらすぐさま onStart() を実行する

onStart()

onCreate() で設定した layout が画面に自動的に描画される。
Stopped 状態から復帰してきた場合は、
引数の Bandle オブジェクトに中断データ(フォームへの入力やスクロール位置など)が渡される。
必要に応じて復元することができる。

Started 状態

onStart() が終了するとこの状態になる。
すぐさま onResume() が呼び出される。

onResume()

Started から遷移してきた場合は特に何もしなくて良い。
Paused から復帰したきた場合には、停止した処理の再開をする。

Resumed 状態

最前面で実行され、ユーザのインタラクションに対応できる。
ダイアログを表示したり、別のアプリを呼びだそうとすると onPause() が実行される。

onPause()

別のアクティビティへ遷移したり、アプリから離れようとした時に呼ばれる。
以下のことをやる。

  • アニメーションなどの CPU を消費する処理を停止する
  • メールの下書きなど消えたら困るデータを保存する
  • ポーズ中に使わないリソースを開放する(カメラやGPS機能へのアクセスなど)


Paused 状態

ダイアログが上に表示されるなど、部分的に見えてはいるんだけど操作はできない状態。
再開するときには onResume() が呼ばれる。
再開時には onPause() で止めた処理を再開すること。
Activity オブジェクトはメモリ上に残り続けて、再開時にそのまま利用できる。
画面が完全に隠れて表示する必要もなくなったら onStop() を実行する。
HoneyComb より古いバージョンではシステムから強制終了がかかる可能性がある。
(これについては明日、詳しく書きます)

onStop()

別のアプリへの遷移するときや、別のアクティビティへ遷移する時に呼ばれる。
再開時に使いたいデータは Bundle オブジェクトとして保存しておく。

Stopped 状態

システムから強制終了がかかる可能性がある。


0 件のコメント:

コメントを投稿