Was sind die Unterschiede zwischen Aktivität und Fragment?

80

Nach meinen Recherchen gibt es einen signifikanten Unterschied im Konzept des Backstacks und wie sie existieren:

Aktivität

  • Wenn ein activitygesetzt wird , um die backstackvon activitiesdem Benutzer kann zurück zur vorherige Aktivität navigieren Sie einfach die Taste back drücken.

  • Activity kann unabhängig existieren.

Fragment

  • Wenn eine fragmentin die Aktivität eingefügt wird, müssen wir anfordern, dass die Instanz durch Aufrufen addToBackstack()während der Aktivität gespeichert wird fragment transaction.

  • Fragment muss in der leben activity

Gibt es zusätzliche Unterschiede?

Devrath
quelle
8
Fragmente müssen nicht im Manifest deklariert werden. Wir haben verschachtelte Fragmente, aber wir können keine verschachtelten Aktivitäten haben
hoomi

Antworten:

38

Hauptunterschiede zwischen Aktivität und Fragment

  1. Aktivität ist eine Anwendungskomponente, die eine Benutzeroberfläche bietet, über die der Benutzer interagieren kann. Das Fragment ist Teil einer Aktivität, die ihre eigene Benutzeroberfläche zu dieser Aktivität beiträgt.
  2. Für Tablets oder wenn sich das Handy im Querformat befindet, können wir mithilfe von Fragment zwei Listen anzeigen, wie die einzige Liste, in der der Statusname angezeigt wird, und in anderen Listen wird die Statusbeschreibung in einer einzelnen Aktivität angezeigt. Mit Aktivität können wir jedoch nicht dasselbe tun.
  3. Die Aktivität ist nicht vom Fragment abhängig. Das Fragment ist jedoch von der Aktivität abhängig und kann nicht unabhängig voneinander existieren.
  4. Ohne Fragment in Activity können wir keine Benutzeroberfläche mit mehreren Fenstern erstellen. Mit mehreren Fragmenten in einer einzigen Aktivität können wir jedoch eine Benutzeroberfläche mit mehreren Fenstern erstellen.
  5. Wenn wir ein Projekt nur mit Aktivität erstellen, ist es schwierig zu verwalten. Wenn wir jedoch Fragmente verwenden, ist die Projektstruktur gut und wir können problemlos damit umgehen.
  6. Eine Aktivität kann 0 oder mehrere Fragmente enthalten. Ein Fragment kann in mehreren Aktivitäten wiederverwendet werden, sodass es als wiederverwendbare Komponente in Aktivitäten fungiert.
  7. Die Aktivität hat einen eigenen Lebenszyklus, aber das Fragment hat einen eigenen Lebenszyklus.
  8. Für Aktivitäten müssen wir nur im Manifest erwähnen, aber für Fragmente ist es nicht erforderlich.
  9. Aktivität viel Speicher verwendet und das Fragment ist nicht Speicher verwendet.
  10. Aktivität ist kein geringes Gewicht. Das Fragment ist das leichte Gewicht.
Siddhartha Shankar
quelle
Schöne Erklärung.
Abhishek Kumar
Kann jemand auf # 10 näher eingehen. Was macht Fragment im Vergleich zu Aktivität leicht?
Dazzieta
# 7 macht keinen Sinn: - \
t3chb0t
23

Gemäß der Android-Entwicklerdokumentation Unterschied zwischen Fragment und Aktivität in ihrem Lebenszyklus.

Dokumentlink http://developer.android.com/guide/components/fragments.html#Lifecycle

Der wichtigste Unterschied im Lebenszyklus zwischen einer Aktivität und einem Fragment besteht darin, wie eine Aktivität in ihrem jeweiligen Backstack gespeichert wird. Eine Aktivität wird standardmäßig in einen hinteren Stapel von Aktivitäten eingefügt, die vom System verwaltet werden, wenn sie gestoppt wird (damit der Benutzer mit der Schaltfläche "Zurück" dorthin navigieren kann, wie unter "Aufgaben" und "Zurück" beschrieben). Ein Fragment wird jedoch nur dann in einen Backstack gelegt, der von der Hostaktivität verwaltet wird, wenn Sie ausdrücklich anfordern, dass die Instanz durch Aufrufen von addToBackStack () während einer Transaktion gespeichert wird, bei der das Fragment entfernt wird.

Andernfalls ist die Verwaltung des Fragmentlebenszyklus der Verwaltung des Aktivitätslebenszyklus sehr ähnlich. Die gleichen Methoden zum Verwalten des Aktivitätslebenszyklus gelten daher auch für Fragmente. Was Sie jedoch auch verstehen müssen, ist, wie sich das Leben der Aktivität auf das Leben des Fragments auswirkt.

& Für Layouts mit mehreren Fenstern müssen Sie verwenden fragment, mit denen Sie nichts erreichen können activity.

Ajay S.
quelle
20

Aktivität ist die Benutzeroberfläche einer Anwendung, über die der Benutzer interagieren kann, und Fragment ist Teil der Aktivität. Es handelt sich um eine Unteraktivität innerhalb einer Aktivität mit einem eigenen Lebenszyklus, der parallel zum Lebenszyklus der Aktivitäten ausgeführt wird.

Activity LifeCycle                           Fragment LifeCycle
onCreate()                                     onAttach()
    |                                              |
onStart()______onRestart()                     onCreate()
    |             |                                |
onResume()        |                            onCreateView()
    |             |                                |
onPause()         |                            onActivityCreated()
    |             |                                |
onStop()__________|                             onStart()
    |                                              |
onDestroy()                                    onResume()
                                                   |
                                                onPause()
                                                   |
                                                onStop()
                                                   |
                                              onDestroyView()
                                                   |
                                               onDestroy()
                                                   |
                                               onDetach()
Shubhamhackz
quelle
5

Aktivität
1. Aktivitäten sind einer der Grundbausteine ​​von Apps auf der Android-Plattform. Sie dienen als Einstiegspunkt für die Interaktion eines Benutzers mit einer App und sind auch von zentraler Bedeutung für die Navigation eines Benutzers innerhalb einer App oder zwischen Apps.
2. Lebenszyklusmethoden werden vom Betriebssystem gehostet.
3. Lebenszyklus der Aktivität

Fragmente
1. Ein Fragment repräsentiert ein Verhalten oder einen Teil der Benutzeroberfläche in einer Aktivität. Sie können mehrere Fragmente in einer einzigen Aktivität kombinieren, um eine Benutzeroberfläche mit mehreren Fenstern zu erstellen und ein Fragment in mehreren Aktivitäten wiederzuverwenden. Sie können sich ein Fragment als einen modularen Abschnitt einer Aktivität vorstellen, der einen eigenen Lebenszyklus hat, eigene Eingabeereignisse empfängt und den Sie hinzufügen oder entfernen können, während die Aktivität ausgeführt wird.
2. Lifecycle-Methoden, die von gehostet werden, werden von Hosting-Aktivitäten gehostet.
3. Lebenszyklus eines Fragments

CubeRootX
quelle