Які відмінності між активністю та фрагментом?


80

Згідно з моїм дослідженням, існує суттєва різниця в концепції backstack та тому, як вони існують:

Діяльність

  • Коли activityпоміщається в backstackпро activitiesкористувач може перейти назад до попередньої діяльності, просто натиснувши на back кнопку.

  • Activity може існувати самостійно.

Фрагмент

  • Коли an fragmentрозміщується до діяльності, ми маємо вимагати збереження екземпляра, зателефонувавши addToBackstack()під час fragment transaction.

  • Fragment повинен жити всередині activity

Чи є додаткові відмінності?


8
Фрагменти не потрібно заявляти в маніфесті. У нас є вкладені фрагменти, але ми не можемо мати вкладених дій
hoomi

Відповіді:


52

Це дві абсолютно різні речі:

Діяльність - це компонент програми, який забезпечує екран, з яким користувачі можуть взаємодіяти, щоб щось зробити. Детальніше: http://developer.android.com/guide/components/activities.html

Тоді як Фрагмент представляє поведінку або частину користувацького інтерфейсу в Activity. http://developer.android.com/guide/components/fragments.html


38

Основні відмінності між активністю та фрагментом

  1. Activity - це компонент програми, який надає користувальницький інтерфейс, де користувач може взаємодіяти. Фрагмент є частиною діяльності, яка вносить свій власний інтерфейс користувача в цю діяльність.
  2. Для планшетного ПК або мобільного пристрою в альбомному режимі, використовуючи фрагмент, ми можемо показати два списки, як єдиний список для показу імені штату, а інші списки відображатимуть опис стану в окремій діяльності, але за допомогою Activity ми не можемо робити те саме.
  3. Діяльність не залежить від фрагмента. Але фрагмент залежить від активності, він не може існувати самостійно.
  4. без використання фрагмента в Activity ми не можемо створити багатопанельний інтерфейс. але використовуючи декілька фрагментів в одній діяльності, ми можемо створити багатопанельний інтерфейс.
  5. Якщо ми створюємо проект, використовуючи лише Activity, то важко управляти ним, але якщо ми використовуємо фрагменти, тоді структура проекту буде гарна, і ми можемо легко з нею впоратися.
  6. Діяльність може містити 0 або кілька номерів фрагментів. Фрагмент може бути використаний повторно в багатьох діях, тому він діє як компонент багаторазового використання в діях.
  7. Діяльність має власний життєвий цикл, але фрагмент має власний життєвий цикл.
  8. Щодо Діяльності, нам просто потрібно згадати у Manifest, але для фрагмента - не потрібно.
  9. Активність використовується багато пам'яті, і фрагмент не використовується.
  10. Активність не є полегшеною вагою. Фрагмент - це полегшена вага.

Гарне пояснення.
Абхішек

Чи може хтось детальніше розповісти про №10. Що робить фрагмент легким у порівнянні з активністю?
dazzieta

# 7 не має сенсу: - \
t3chb0t

23

Відповідно до документації розробника для Android, різниця між фрагментами та діяльністю в їх життєвому циклі.

Посилання на документ http://developer.android.com/guide/components/fragments.html#Lifecycle

Найбільш істотна різниця в життєвому циклі між діяльністю та фрагментом полягає в тому, як один зберігається у відповідному задньому стеку. Діяльність поміщається у задній стек дій, яким керує система, коли він зупинений, за замовчуванням (щоб користувач міг повернутися до нього за допомогою кнопки Назад, як це обговорювалось у Завданнях та Back Stack). Однак фрагмент поміщається в задній стек, керований діяльністю хоста, лише коли ви явно вимагаєте збереження екземпляра, викликаючи addToBackStack () під час транзакції, яка видаляє фрагмент.

В іншому випадку управління життєвим циклом фрагмента дуже схоже на управління життєвим циклом діяльності. Отже, ті самі практики управління життєвим циклом діяльності стосуються і фрагментів. Однак вам також потрібно зрозуміти, як життя діяльності впливає на життя фрагмента.

& для макетів із декількома панелями ви повинні використовувати fragmentте, чого ви не можете досягти activity.


20

Activity - це користувальницький інтерфейс програми, за допомогою якої користувач може взаємодіяти, а Fragment - це частина Activity, це підактивність всередині діяльності, яка має власний життєвий цикл, який проходить паралельно життєвому циклу Activity.

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

5

Діяльність
1. Діяльність є одним з основних будівельних блоків програм на платформі Android. Вони служать точкою входу для взаємодії користувача з додатком, а також мають центральне значення для того, як користувач переміщається в додатку або між додатками.
2. Методи життєвого циклу розміщуються в ОС.
3. Життєвий цикл діяльності

Фрагменти
1. Фрагмент представляє поведінку або частину інтерфейсу користувача в Activity. Ви можете об’єднати кілька фрагментів в одному заході, щоб створити багатопанельний інтерфейс і повторно використовувати фрагмент у кількох діях. Ви можете уявити фрагмент як модульний розділ діяльності, який має власний життєвий цикл, отримує власні вхідні події і який ви можете додавати або видаляти під час активності.
2. Методи життєвого циклу розміщуються за допомогою розміщуються за допомогою хостингової діяльності.
3. Життєвий цикл фрагмента

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.