web-dev-qa-db-ja.com

アクティビティとフラグメントの違いは何ですか?

私の研究によれば、バックスタックの概念とその存在方法には大きな違いがあります。

アクティビティ

  • activitybackstackactivitiesに配置されると、ユーザーはbackボタンを押すだけで前のアクティビティに戻ることができます。

  • Activityは独立して存在できます。

断片

  • fragmentがアクティビティに配置されると、fragmenttransactionの間にaddToBackstack()を呼び出して、インスタンスの保存を要求する必要があります。

  • Fragmentactivity内に存在する必要があります

他に違いはありますか?

65
Devrath

これらは2つのまったく異なるものです。

アクティビティは、ユーザーが何かをするために対話できる画面を提供するアプリケーションコンポーネントです。詳細: http://developer.Android.com/guide/components/activities.html

一方、フラグメントは、アクティビティの動作またはユーザーインターフェイスの一部を表します。 http://developer.Android.com/guide/components/fragments.html

Android開発者ドキュメントによると、ライフサイクルにおけるフラグメントとアクティビティの違い。

ドキュメントリンク http://developer.Android.com/guide/components/fragments.html#Lifecycle

アクティビティとフラグメントのライフサイクルにおける最も重要な違いは、それぞれのバックスタックへの格納方法です。アクティビティは、デフォルトでは、停止時にシステムによって管理されるアクティビティのバックスタックに配置されます(タスクとバックスタックで説明されているように、ユーザーは[戻る]ボタンで戻ることができます)。ただし、フラグメントを削除するトランザクション中にaddToBackStack()を呼び出してインスタンスを保存するよう明示的に要求した場合にのみ、ホストアクティビティによって管理されるバックスタックにフラグメントが配置されます。

それ以外の場合、フラグメントライフサイクルの管理は、アクティビティライフサイクルの管理と非常に似ています。そのため、アクティビティライフサイクルを管理するための同じプラクティスがフラグメントにも適用されます。ただし、アクティビティの寿命がフラグメントの寿命にどのように影響するかについても理解する必要があります。

&マルチペインレイアウトの場合、fragmentでは実現できないactivityを使用する必要があります。

20
Ajay S

アクティビティとフラグメントの主な違い

  1. アクティビティは、ユーザーが介入できるユーザーインターフェイスを提供するアプリケーションコンポーネントです。フラグメントはアクティビティの一部であり、アクティビティに独自のUIを構成します。
  2. タブレットの場合、またはモバイルが横向きの場合、フラグメントを使用すると、単一のアクティビティで状態名を表示するためのonleリストなどの2つのリストを表示できますが、アクティビティを使用すると同じことはできません。
  3. アクティビティはフラグメントに依存しませんが、フラグメントはアクティビティに依存します。独立して存在することはできません。
  4. アクティビティでフラグメントを使用しないと、マルチペインUIを作成できませんが、単一のアクティビティで複数のフラグメントを使用すると、マルチペインUIを作成できます。
  5. アクティビティのみを使用してプロジェクトを作成する場合は管理が難しくなりますが、フラグメントを使用する場合はプロジェクト構造が良好になり、簡単に処理できます。
  6. アクティビティには、0個または複数のフラグメントが含まれる場合があります。フラグメントは複数のアクティビティで再利用できるため、アクティビティの再利用可能なコンポーネントのように機能します。
  7. アクティビティには独自のライフサイクルがありますが、フラグメントには独自のライフサイクルがあります。
  8. アクティビティについてはマニフェストで言及する必要がありますが、フラグメントについては必須ではありません。
16

アクティビティは、ユーザーが対話できるアプリケーションのUIであり、フラグメントはアクティビティの一部であり、アクティビティライフサイクルと並行して実行される独自のライフサイクルを持つサブアクティビティ内部アクティビティです。

Activity LifeCycle                           Fragment LifeCycle
onCreate()                                    onAttach()
    |                                              |
onStart()______onRestart()                     onCreate()
    |             |                                |
onResume()        |                            onCreateView()
    |             |                                |
onPause()         |                            onActivityCreated()
    |             |                                |
onStop()__________|                             onStart()
    |                                              |
onDestroy()                                     onResume()
                                                   |
                                                onPause()
                                                   |
                                                onStop()
                                                   |
                                                onDestroyView()
                                                   |
                                                onDestroy()
                                                   |
                                                onDetach()
14
Shubham Soni

アクティビティ
1。アクティビティは、Androidプラットフォーム上のアプリの基本的な構成要素の1つです。これらは、ユーザーがアプリを操作する際のエントリポイントとして機能し、ユーザーがアプリ内またはアプリ間をナビゲートする方法の中心でもあります。
2。ライフサイクルメソッドはOSによってホストされます。
3。 アクティビティのライフサイクル

フラグメント
1。フラグメントは、アクティビティの動作またはユーザーインターフェイスの一部を表します。 1つのアクティビティで複数のフラグメントを組み合わせて、マルチペインUIを構築し、フラグメントを複数のアクティビティで再利用できます。フラグメントは、独自のライフサイクルを持ち、独自の入力イベントを受け取り、アクティビティの実行中に追加または削除できるアクティビティのモジュールセクションと考えることができます。
2。ライフサイクルメソッドは、ホスティングアクティビティによってホストされます。
3。 フラグメントのライフサイクル

4
argon448