Android アクティビティとは何ですか?またそのライフサイクルは何ですか? - テクノロジー
コンテンツにスキップ

Android アクティビティとは何ですか?またそのライフサイクルは何ですか?

モバイル アプリケーションの開発における主要な概念の 1 つはアクティビティの概念であり、これらがアプリケーションの基礎となります。今回は、それらが何で構成され、そのライフ サイクルが何であるかを見ていきます。

広告


公式 Android 開発者ページでは、アクティビティが何を表すかについてのより詳細な説明を見つけることができます (https://developer.android.com/guide/components/activities/intro-activities) ここでは、それらとそのライフサイクルに関する一般性を見ていきます。


Android アプリケーションはさまざまなグラフィカル コンポーネントまたはビューで構成されており、さらに、グラフィカル インターフェイスをアプリケーションのロジックから独立させるディレクトリ構造を持っていることをすでに見てきました。画面は、次の内容を含む XML ファイルによって管理されます。レイアウトまたはコンテンツ マネージャーとロジックは、Activity クラスに対応するアクティビティ内で動作します。アクティビティ内に存在するフラグメントと呼ばれる別の概念もありますが、これについては後で説明します。


Activity クラスは、アプリケーションの主要コンポーネントの 1 つです。これらは、システム ロジックとユーザーが操作する内容を管理するため、まさにアプリ構築の基礎となります。 Android アプリケーションは、アプリケーションの実行を維持するために定義されたライフサイクルを持つアクティビティのインスタンスから開始されます。


ライフサイクルに入る前に、モバイル アプリの動作方法が他のアプリの動作方法とは異なることを明確にすることが非常に重要です。main() メソッドを通じて開始されるデスクトップ アプリとは異なり、モバイル アプリには特定の開始点がありません。アプリケーションはどの画面からでも起動できます (これは、起動命令を出せないという意味ではありません)。


内部的には、画面を変更するときに行われるのはアクティビティ間の呼び出し (または同じアクティビティ内でフラグメントが置き換えられます) であり、同じ方法でアプリケーション間を変更するときは、最初のアクティビティを呼び出すことによってアプリケーションが呼び出されます。


通常、アプリケーションは複数の画面で構成されます。これは、相互に通信する複数のアクティビティがあることに相当します。アプリケーションはどのアクティビティからでも開始できることはすでに述べましたが、アクティビティは常にメイン アクティビティ MainActivity として定義されます (ただし、必ずしも最初に表示される必要はありません)、そこから新しいアクティビティまたはフラグメントを呼び出すシステム内のナビゲーションの開始点をマークします。

マニフェスト ファイル (AndroidManifest.xml)


前のエントリでマニフェスト ファイルについて説明しました。これは、アプリケーションの主要な要素をパラメータ化できる構成ファイルです。ここには、アプリケーション ID、名前、アイコン、それに含まれるアクティビティなどの情報が含まれています。権限などの重要な項目。



アクティビティが作成されると、androidStudio は AndroidManifest.xml ファイル内でそのアクティビティを自動的にパラメータ化します。また、そこでフィルタやプロパティを追加して、アプリケーションの追加のアクションを決定することもできます。たとえば、前の画像では、MainActivity がアクティビティ システム メイン (最初に表示されているもの) プロパティとともに追加されます <action android:name="android.intent.action.MAIN" />

アクティビティのライフサイクル。


アクティビティは実行中にいくつかの状態を経ます。これらの状態は、アクティビティに入るとき、出るとき、再び入るとき、または閉じるときなど、アクティビティとのユーザーの対話を通じて発生します。Android では、定義された一連のメソッドを通じてこれらの各状態を制御できます。動作を管理するために実装できるメソッド。たとえば、画面を変更するときにビデオプレーヤーを一時停止したり、アプリケーションを終了するときに接続プロセスをキャンセルしたりできます。Android 開発者ページで、これらのメソッドの詳細を見つけることができます(そこでも見つけることができます)次の図は、その仕組みを示しています。


各州の概要は次のとおりです。


  • onCreate()

    このメソッドはアクティビティ内でデフォルトで作成され、setContentView() メソッドを通じてグラフィック パーツに対応するレイアウトの参照を開始するとアクティブ化され、最初に実行されるメソッドです。

  • onStart()

    onCreate() が閉じると、アクティビティの状態が作成済みから開始済みに変更され、ユーザーに表示されます。ここでビューとアクティビティが対話型になります。

  • 要するに()

    アクティビティの開始後、onResume() 状態が変更され、ユーザー対話情報の処理を担当します。ここでは、ユーザーが入力したすべての情報が認識され、キャプチャされます。

  • onPause()

    アクティビティがフォーカスを失って中断された場合、たとえば、ユーザーが戻るボタンを押すか画面を変更すると、一時停止状態が呼び出されます。これは、アクティビティが閉じられている間もアクティビティがまだ部分的に表示されていることを意味します。

    この状態から、再び onResume() または onStop() に戻ることができます。

  • onStop()

    この状態は、アクティビティがユーザーに表示されなくなったときに開始されます。その理由としては、アクティビティが削除されたか、停止されたアクティビティが再アクティブ化されているか、新しいアクティビティが開始されていることが考えられます。この場合、停止したアクティビティはユーザーに表示されなくなりました。ユーザー。ユーザー、ここから onRestart() または onDestroy() を呼び出すことができます

  • onRestart()

    停止したアクティビティが再び開始されると、システムはこの状態に入ります。ここで、アクティビティの状態は、停止されて onStart() が呼び出された瞬間から復元されます。

  • onDestroy()

    最後に、システムはアクティビティを削除する前にこのメソッドを呼び出します。これはアクティビティが通過する最後の状態であり、アクティビティのすべてのリソースを閉じるか解放することが保証される必要があるときに実装されます。


これらのメソッドは、次のようにプロジェクトに実装できます。


したがって、アプリケーションを開始すると、logcat で動作が確認されます。

これで、アクティビティの構成とライフサイクルをどのように制御できるかがわかり、基本的なアプリケーションの作業を続けることができます。

あなたも興味を持つかもしれません。




このエントリについて何か追加またはコメントしたいことがありますか?自由にやってください….気に入っていただけましたら...ぜひシェアしてください Y このような投稿をもっと聞くには、「このサイトに参加する」ボタンをクリックして購読してください 😉