今回は Android 開発をするうえで重要な概念であるライフサイクルと、アプリとは別にバックグラウンドで動作する Service がどのように動作するのか簡単にまとめました。
Android アプリの起動から終了までの一連の流れです。アプリは単に起動中かどうかによって動作しているのではなく、様々な状態を持っています。
この画像は Android の Activity のライフサイクルを示したものです。Activity について、ここではとりあえず画面のことだと考えてください。(あとから出てくる Service は画面を持たない処理をしたりしますが一旦無視します)
図を見てみると、様々な関数で状態が変化しており、1番上の Activity launched から、一番下の Activity shut down までの間にも多くの状態があることが分かります。では、ここで全体の流れを詳しく見てみましょう。
処理
呼び出されるタイミング
アプリのプロセスがキルされるというのは、アプリがバックグラウンドにある状態で、メモリ不足などにより以前の操作の記録が破棄されたということです。例えば、テキストを入力している途中の状態で他のアプリに移動したら入力途中のデータが消えていた…というようなことがあります。(意図的にそのような動作にしている場合もあるので OS によるプロセスのキルとは限りませんが…)