【Kotlin/Android Studio】Activityのライフサイクルの種類と役割

この記事からわかること

  • Android Studio/Kotlin Activityライフサイクルとは?
  • 種類役割
  • onCreate()onStart()onAttachonPause()onStop()onDestroy()違い処理

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

参考文献:公式リファレンス:The activity lifecycle

環境

Activityとは?

ActivityとはAndroidアプリの中でユーザーインターフェースとアプリケーションのロジックを含む画面を表すコンポーネントです。アプリの中で複数のActivityを用意することも可能ですが、1アプリに1Activityにして画面をFragmentで実装していくパターンが増えてきています。

ActivityはXML構造のレイアウトファイルとKotlin(Java)で記述されたの動作を制御するファイルから構成されており、アプリケーションが起動されるとActivityも同時に生成されます。

Activityのライフサイクル

Activityには生成されたタイミングから破棄されるタイミングまでのライフサイクルを保持しています。そのライフサイクルの状態に応じたコールバックが受け取れるようにさまざまなライフサイクルコールバックメソッドが用意されています。

ライフサイクルの種類

Activityに用意されているライフサイクルコールバックメソッドは以下の6つです。

  1. onCreate()
  2. onStart()
  3. onResume()
  4. onPause()
  5. onStop()
  6. onDestroy()

公式サイトより引用した以下の画像がわかりやすいかと思います。

【Kotlin/Android Studio】Activityのライフサイクルの種類と役割

引用:公式リファレンス:The activity lifecycle

onCreate()

システムが最初にActivityを作成したときに呼び出されるコールバックです。ライフサイクル内で1回しか呼び出されないため1回のみ実行する必要がある基本的なアプリの起動ロジックを含ませます。

パラメータsavedInstanceStateActivityの以前に保存された状態を保持するBundleオブジェクトです。以前にActivityが存在していなければnullが格納されています。

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.main_activity)
}

例えばUIの宣言(レイアウトの定義)やメンバー変数の定義、ウィジェットの操作、 ViewModelの関連付けなどです。

onStart()

Activityが開始状態になりフォアグラウンドに移動して操作可能な状態にする準備が完了すると呼び出されるコールバックです。このメソッドではUIを保持するコードをアプリが初期化しています。

また呼び出されるのは初回のみではなくアプリが一時停止し再開した際にはonStart()からまた始まります。

onResume()

Activityが表示され操作可能な状態になった際に呼び出されるコールバックです。この状態まで来るとユーザーとの対話的なやりとりが可能になり、フォーカスがアプリから他の対象に移動する状況が発生するまでアプリはこの状態を保持します。

onPause()

Activityが一時停止し、バックグラウンドに移動する時に呼び出されるコールバックです。一部のイベントがアプリの実行に割り込んだり、マルチウィンドウモードでフォーカスが当たっていない時、新しい半透明のアクティビティ(ダイアログなど)が開く際に呼び出されます。

onPause()の実行は非常に短時間で終了するためデータの保存やネットワーク呼び出し、データベーストランザクションの実行には使用しないことが推奨されています。

onStop()

Activityが非表示になる際に呼び出されるコールバックです。新たに開始されたアクティビティが画面全体を占有する場合などに発生します。ここではアプリがユーザーに表示されていない間に不要なリソースをアプリが解放または調整する必要があります。例えば位置情報の精度を高から低に下げるなど。

onDestroy()

Activityが破棄される際に呼び出されるコールバックです。これはアクティビティの終了(ユーザーがアクティビティを完全に閉じるか、アクティビティに対してfinishが呼び出される)や構成の変更(デバイスの向きの変更やマルチウィンドウモードなど)に伴いアクティビティが一時的に破棄される場合に呼び出されます。

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index