Activity の基本的な3つの状態
- アクティブ状態:フォアグランドに表示されている状態
- 一時停止状態: 前面のアクティビティが透明か全画面表示でないため一部が見えている状態
- 停止状態: 別のアクティビティがによって完全に隠されている状態
Activity の状態が遷移したときに呼び出される関数
- void onCreate(Bundle savedInstanceState) Activiy が始めて作成されるときに呼び出される
- void onRestart() Activity 停止後、再会するときに呼び出される
- void onStart() Activity がユーザーから見えるようになる直前に呼び出される
- void onResume() Activity がユーザーとの対話を開始する直前に呼び出される
- void onPause() システムが別の Activity を開始しようとしているときに呼び出される
- void onStop() Activity がユーザーから見えなくなったときに呼び出される
- void onDestroy() Activity が破棄される前に呼び出される
ライフサイクル図
プロセスが強制終了するとき、onPause() だけは必ず呼び出されるが、onStop() と onDestroy() は、必ず呼び出されるとは限らない
Activity が強制終了させられる前の状態を保存しておきたい場合は、onSaveInstanceState() メソッドを実装
これは onPause() が呼び出される前に呼び出され、Activity の動的な状態を名前/値ペアとして記録できる Bundle オブジェクトが渡される。
Activity がもう一度開始されると、Bundle は onCreate() と、onStart() の後に呼び出される onRestoreInstanceState() メソッドに渡され、保存されている状態を復元できる
onSaveInstanceState() は常に呼び出されるわけではないので、一時的な状態を記録する目的のみに使用し、
永続データの格納には onPause() を使用したほうがよい
うーん、なるほど!
参考サイト
http://developer.android.com/intl/ja/guide/topics/fundamentals.html
0 件のコメント:
コメントを投稿