Applicationのライフサイクル
AndoridのApplicationオブジェクトにも4つのhandlerがあって、それぞれオーバーライドすることもあるのですが、今まで適当にしか理解してなかった。これを機にきちんと理解し直してみました。
- onCreate
- Applicationの生成時に呼ばれる。
- ここでアプリケーションのシングルトンを初期化する
- ここでアプリケーションの状態変数や共有リソースなどを生成したり初期化したりする。
- onTerminate
- Applicationオブジェクトが終了するときに呼ばれる。
- 確実に呼ばれる保証はない。
- 他のアプリのためにリソースを解放する目的でkernelから終了させられる場合は、Warningも出さずonTerminateも呼ばれずプロセスは終了される。
- onLowMemory
- リソースが逼迫してる状況で、メモリを解放するタイミングを提供するメソッド。
- 一般的にはバックグラウンドで稼働しているプロセスがシステムに終了されて、なおかつ前面のapplicationのメモリにまだ余裕のない場合に呼ばれる。
- ここでキャッシュをクリアしたり、不必要なリソースを解放したりする処理を実装する。
- onConfigurationChanged
- ActivityとちがってApplication オブジェクトはconfiguration changedがとんでくる度にkillされたりrestartしたりしないので、ここにはconfiguration changedの際のApplicationレベルの実装を書く。