はじめに

アクティビティとは、ユーザが何かをするための画面を提供するコンポーネント。
Androidアプリケーションは、複数のアクティビティを持つことがあり、それらは疎結合 (loosely coupled) されてる。

通常ひとつのアクティビティがメインのアクティビティに指定され、 Android アプリケーションを起動するとそれがまずユーザーに表示されます。
新しいアクティビティが起動されると、元のアクティビティはバックスタックに積まれます。起動されたアクティビティが終わるとか、 BACKキーを押すことによってバックスタック内のアクティビティがポップされて表示されます。

スタック状のアクティビティ

スタック状のアクティビティ

ライフサイクル

アクティビティが呼ばれて消滅するまでのライフサイクルは以下の通り。

アクティビティのライフサイクル

アクティビティのライフサイクル

イベント

アンドロイドではある時間使用していないときに、バッテリーの使用量を節約するために、自動的に画面を非アクティブな状態にしたり、メモリが足りないときには非アクティブなプログラムを終了したりもします。
Android アプリケーションを開発するには、こうした画面の状態変化に合わせて、必要なデータを保存したり、データを元にもどしたりする必要があります。

そのような状態の遷移にあわせてAndroidシステムはイベントが発生させます。Androidアプリケーション側ではonXXXX関数が呼ばれます。呼ばれるタイミングは以下の通り。

onCreate() ⇒ Activityが初めて作成される時
onRestart() ⇒停止した後、開始する直前
onStart() ⇒ユーザーから見える直前
onResume() ⇒フォアグラウンドに表示
onPause() ⇒別のアクティビティを開始
onStop() ⇒ アクティビティがユーザーから見えなくなったとき
onDestroy() ⇒ アクティビティが破棄される前。最後。