この記事は
Android 公式 Doc のアクティビティライフサイクル に、図など視覚情報を補足したもの。
内容はあくまで参考にとどめてください
以下のサンプルアプリ(仮称: Lifecycle アプリ) を使う。
-
LifecycleアプリにはMainActivity,SettingActivityが存在する -
Lifecycleアプリ初回起動時はMainActivityが起動する -
SettingActivityは-
MainActivityからstartActivityで起動する -
finish()で終了する
-
| MainActivity | SettingActivity |
|---|---|
![]() |
![]() |
実行操作とライフサイクル順序
今回取り上げる実行操作は以下。
- (1) アプリを開始する
- (2) アクティビティから別アクティビティを開始する
- (3) タスクボタンからアプリ一覧を表示する
- (4) アプリ一覧表示から戻る
- (5) アプリ一覧から、アプリを終了させる
- (6) 特定アクティビティを終了する
- (7) ホーム画面へ戻る
- (8) ホーム画面からアプリを再実行する
(1) アプリを開始する
-
Lifecycleアプリは未起動とする -
Lifecycleアイコンをタップすると、MainActivityが起動する
ライフサイクル順序(上から順に実行される)
-
MainActivity- onCreate
- onStart
- onResume
| BEFORE | AFTER |
|---|---|
![]() |
![]() |
(2) アクティビティから別アクティビティを開始する
-
MainActivityからSettingActivityをstartActivityで起動する
ライフサイクル順序(上から順に実行される)
-
MainActivity- onPause
-
SettingActivity- onCreate
- onStart
- onResume
-
MainActivity- onStop
| BEFORE | AFTER |
|---|---|
![]() |
![]() |
(3) タスクボタンからアプリ一覧を表示する
-
SettingActivityを表示しておく - ナビゲーションバー右下のタスクボタンをタップする
ライフサイクル順序(上から順に実行される)
-
SettingActivity- onPause
- onStop
| BEFORE | AFTER |
|---|---|
![]() |
![]() |
(4) アプリ一覧表示から戻る
- アプリ一覧表示の状態 (3) から、アプリをタップし戻る
ライフサイクル順序(上から順に実行される)
-
SettingActivity- onRestart
- onStart
- onResume
| BEFORE | AFTER |
|---|---|
![]() |
![]() |
(5) アプリ一覧から、アプリを終了させる
- アプリ一覧表示の状態 (3) から、アプリをフリップする
- アプリ一覧に
Lifecycleアプリが出ないようにする
ライフサイクル順序(上から順に実行される)
-
SettingActivity- onDestroy
-
MainActivity- onDestroy
| BEFORE | AFTER |
|---|---|
![]() |
![]() |
(6) 特定アクティビティを終了する
-
SettingActivityが表示されている状態にする -
SettingActivityにてfinish()する -
MainActivityが表示される
ライフサイクル順序(上から順に実行される)
-
SettingActivity- onPause
-
MainActivity- onRestart
- onStart
- onResume
-
SettingActivity- onStop
- onDestroy
| BEFORE | AFTER |
|---|---|
![]() |
![]() |
(7) ホーム画面へ戻る
-
MainActivityが表示されている状態にする - ホームボタンをタップする
ライフサイクル順序(上から順に実行される)
-
MainActivity- onPause
- onStop
| BEFORE | AFTER |
|---|---|
![]() |
![]() |
(8) ホーム画面からアプリを再実行する
- (7) の通りホーム画面へ戻る
-
Lifecycleアプリのアイコンをタップする
ライフサイクル順序(上から順に実行される)
-
MainActivity- onRestart
- onStart
- onResume
| BEFORE | AFTER |
|---|---|
![]() |
![]() |
捕捉
クラッシュ・ANR などを考慮すると網羅はできていないが、ここまでにしておく。
本当にそうなるかは手元で同様のサンプルアプリを作り、ログを追いながら確認お願いしたい。
環境情報
- Android Studio 2020.3.1
- gradle 7.0.3
- JDK 1.8
- Windows 11(21H2)
- Android SDK
- compile, target, min 共に 28




