■ ライフサイクルとは?
Androidアプリでは、ユーザーがアプリを起動・閉じたり、電話がかかってきたり、別アプリに切り替わったり…という状況の変化が頻繁に発生します。
こうした アプリの状態の変化に応じて自動的に呼び出されるメソッド群 を「ライフサイクル」と呼びます。
■ 基本の3つ:onCreate → onStart → onResume
1. onCreate(Bundle savedInstanceState)
- Activityが初めて生成されるときに1回だけ呼ばれます。
- 初期化処理(レイアウト設定、Viewの取得、変数の初期化など)を書くのが一般的です。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // UIを設定
Log.d("ライフサイクル", "onCreate呼ばれた");
}
Javaでいうと、コンストラクタのようなイメージですが、AndroidではUI設定までやるのがポイントです。
2. onStart()
- Activityが「見える状態」になる直前に呼ばれます。
- アプリが前面に表示される直前のタイミングです。
@Override
protected void onStart() {
super.onStart();
Log.d("ライフサイクル", "onStart呼ばれた");
}
ここでは特に表示開始に関係する処理(データの読み込みなど)を入れることがあります。
3. onResume()
- ユーザーが実際に操作できる状態になるときに呼ばれます。
- つまり、「画面が表示されて、入力を受け付けている」状態の入口です。
@Override
protected void onResume() {
super.onResume();
Log.d("ライフサイクル", "onResume呼ばれた");
}
アニメーションの再開、センサーやカメラの起動など、ユーザー操作に関係する処理をここに書くことが多いです。
■ 他にもある代表的なライフサイクル
メソッド名 | 状態・目的 |
---|---|
onPause() | 他の画面に遷移するとき(Activityの手前に別画面がかぶる) |
onStop() | 画面が完全に見えなくなるとき(別のActivityに切り替わるなど) |
onDestroy() | Activityが完全に終了・破棄されるとき |
onRestart() | 一度 onStop() されたActivityが、再び再開されるとき |
■ ライフサイクルのイメージ図(簡易)

■ よくある間違い・注意点
onCreate()
に処理を詰め込みすぎる → 起動が遅くなりやすいonResume()
に重たい処理(DBアクセスなど)を書かない- 一時停止中のデータ保存は
onPause()
に書くと安全 - Androidは「自動で状態遷移する」ので、自分で明示的に呼ばない
■ 状態ごとの処理まとめ(実用視点)
処理内容 | 書く場所 |
---|---|
画面の初期レイアウト、Viewの初期化 | onCreate() |
画面を開くたびにリストを更新したい | onStart() or onResume() |
センサーやカメラの再開 | onResume() |
データの保存、一時停止処理 | onPause() |
監視サービスやアニメーションの停止 | onStop() |
アプリ終了時のクリーンアップ | onDestroy() |
■ まとめ
onCreate()
:初回起動時の準備onStart()
:表示開始直前(見える状態へ)onResume()
:ユーザーが操作可能になる直前
それぞれの役割を覚えておくと、アプリの動作に一貫性を持たせやすくなります。