概要
Activityのライフサイクルメソッドを理解してコーディングすることは非常に重要です。
以下に各メソッドの大枠の役割を記載致します。
コールの順番 | メソッド名 | 役割 |
---|---|---|
1 | onCreate | 画面が可視化される前の初期処理を行う |
2 | onStart | 画面が可視化される直前の処理を行う |
3 | onResume | 画面が可視化される状態の処理を行う |
4 | onPause | 画面が別の画面へ遷移する際の処理を行う |
5 | onStop | 画面が見えなくなった際の処理を行う |
6 | onDestroy | 画面が破棄される直前の処理を行う |
詳細
oncreate
- アクティビティが作成された際に、一度だけ初期化されるべきリソースの初期化を行う。
- 回転などによって破棄されて作り直される場合、前の状態が保存されていれば、onCreate()の引数であるBundleオブジェクトが渡される。
onStart
- Activityをユーザーに見せる直前に呼び出される
- onStart()が呼び出されてからonStop()が呼び出されるまでがユーザーに画面が表示されている期間なので、ここで、バックグラウンド処理のコールバックの登録などを行ったりする。 例えばonStart()メソッドの中でブロードキャストレシーバを登録して、UIに影響を与える変化を起こす通知がこないか監視するようにし、onStop()でその登録を解除する。
onResume
- Activityが復帰する時や、新しいインテントが届いた時に呼び出される
- Activityが最前面に来ていて、ユーザーと対話状態になる直前に重い処理を 挟むと表示されてしばらく操作できないということになるので、 ここで呼び出す処理は可能な限り軽くすることを推奨。
onPause
- Androidが別のActivityへ遷移しようとするタイミングで呼び出される。
- ユーザーとの相互作用を停止するための準備。
onStop
- Activityがユーザーから見えなくなったときに呼び出される
- 上記が起こるのは、Activityが破棄される場合と、別のActivityに隠される場合がある
- onStart()メソッドの中で設定した、UIに変化を起こすバックグラウンド処理の監視などを解除する。
onDestroy
- Activityが破棄される直前に呼び出される。
- onCreateで取得したリソースを解放するのが一般的。