この記事は
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