私の研究によれば、バックスタックの概念とその存在方法には大きな違いがあります。
activity
がbackstack
のactivities
に配置されると、ユーザーはback
ボタンを押すだけで前のアクティビティに戻ることができます。
Activity
は独立して存在できます。
fragment
がアクティビティに配置されると、fragment
transaction
の間にaddToBackstack()
を呼び出して、インスタンスの保存を要求する必要があります。
Fragment
はactivity
内に存在する必要があります
他に違いはありますか?
これらは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
を使用する必要があります。
アクティビティとフラグメントの主な違い
アクティビティは、ユーザーが対話できるアプリケーションのUIであり、フラグメントはアクティビティの一部であり、アクティビティライフサイクルと並行して実行される独自のライフサイクルを持つサブアクティビティ内部アクティビティです。
Activity LifeCycle Fragment LifeCycle
onCreate() onAttach()
| |
onStart()______onRestart() onCreate()
| | |
onResume() | onCreateView()
| | |
onPause() | onActivityCreated()
| | |
onStop()__________| onStart()
| |
onDestroy() onResume()
|
onPause()
|
onStop()
|
onDestroyView()
|
onDestroy()
|
onDetach()
アクティビティ
1。アクティビティは、Androidプラットフォーム上のアプリの基本的な構成要素の1つです。これらは、ユーザーがアプリを操作する際のエントリポイントとして機能し、ユーザーがアプリ内またはアプリ間をナビゲートする方法の中心でもあります。
2。ライフサイクルメソッドはOSによってホストされます。
3。 アクティビティのライフサイクル
フラグメント
1。フラグメントは、アクティビティの動作またはユーザーインターフェイスの一部を表します。 1つのアクティビティで複数のフラグメントを組み合わせて、マルチペインUIを構築し、フラグメントを複数のアクティビティで再利用できます。フラグメントは、独自のライフサイクルを持ち、独自の入力イベントを受け取り、アクティビティの実行中に追加または削除できるアクティビティのモジュールセクションと考えることができます。
2。ライフサイクルメソッドは、ホスティングアクティビティによってホストされます。
3。 フラグメントのライフサイクル