0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

アクティビティライフサイクルの大まかな流れを把握する

Last updated at Posted at 2022-01-08

この記事は

Android 公式 Doc のアクティビティライフサイクル に、図など視覚情報を補足したもの。

内容はあくまで参考にとどめてください


以下のサンプルアプリ(仮称: Lifecycle アプリ) を使う。

  • Lifecycle アプリには MainActivity, SettingActivity が存在する
  • Lifecycle アプリ初回起動時は MainActivity が起動する
  • SettingActivity
    • MainActivity から startActivity で起動する
    • finish() で終了する
MainActivity SettingActivity
main_activity.png setting_activity.png

実行操作とライフサイクル順序

今回取り上げる実行操作は以下。

(1) アプリを開始する

  • Lifecycle アプリは未起動とする
  • Lifecycle アイコンをタップすると、MainActivity が起動する

ライフサイクル順序(上から順に実行される)

  • MainActivity
    • onCreate
    • onStart
    • onResume
BEFORE AFTER
home.png main_activity.png

(2) アクティビティから別アクティビティを開始する

  • MainActivity から SettingActivitystartActivity で起動する

ライフサイクル順序(上から順に実行される)

  • MainActivity
    • onPause
  • SettingActivity
    • onCreate
    • onStart
    • onResume
  • MainActivity
    • onStop
BEFORE AFTER
main_activity.png setting_activity.png

(3) タスクボタンからアプリ一覧を表示する

  • SettingActivity を表示しておく
  • ナビゲーションバー右下のタスクボタンをタップする

ライフサイクル順序(上から順に実行される)

  • SettingActivity
    • onPause
    • onStop
BEFORE AFTER
setting_activity.png process_list.png

(4) アプリ一覧表示から戻る

  • アプリ一覧表示の状態 (3) から、アプリをタップし戻る

ライフサイクル順序(上から順に実行される)

  • SettingActivity
    • onRestart
    • onStart
    • onResume
BEFORE AFTER
process_list.png setting_activity.png

(5) アプリ一覧から、アプリを終了させる

  • アプリ一覧表示の状態 (3) から、アプリをフリップする
  • アプリ一覧に Lifecycle アプリが出ないようにする

ライフサイクル順序(上から順に実行される)

  • SettingActivity
    • onDestroy
  • MainActivity
    • onDestroy
BEFORE AFTER
process_list.png no_app.png

(6) 特定アクティビティを終了する

  • SettingActivity が表示されている状態にする
  • SettingActivity にて finish() する
  • MainActivity が表示される

ライフサイクル順序(上から順に実行される)

  • SettingActivity
    • onPause
  • MainActivity
    • onRestart
    • onStart
    • onResume
  • SettingActivity
    • onStop
    • onDestroy
BEFORE AFTER
setting_activity.png main_activity.png

(7) ホーム画面へ戻る

  • MainActivity が表示されている状態にする
  • ホームボタンをタップする

ライフサイクル順序(上から順に実行される)

  • MainActivity
    • onPause
    • onStop
BEFORE AFTER
main_activity.png home.png

(8) ホーム画面からアプリを再実行する

  • (7) の通りホーム画面へ戻る
  • Lifecycle アプリのアイコンをタップする

ライフサイクル順序(上から順に実行される)

  • MainActivity
    • onRestart
    • onStart
    • onResume
BEFORE AFTER
home.png main_activity.png

捕捉

クラッシュ・ANR などを考慮すると網羅はできていないが、ここまでにしておく。

本当にそうなるかは手元で同様のサンプルアプリを作り、ログを追いながら確認お願いしたい。

環境情報

  • Android Studio 2020.3.1
  • gradle 7.0.3
  • JDK 1.8
  • Windows 11(21H2)
  • Android SDK
    • compile, target, min 共に 28
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?