Sobes.tech
Middle

Ինչու՞ ֆրագմենտի callback-ները տարբերվում են ակտիվության callback-ներից։

sobes.tech AI

Պատասխան AI-ից

Ֆրագմենտի կյանքի ցիկլը ավելի բարդ է և սերտորեն կապված է այն ակտիվության կյանքի ցիկլի հետ, որի մեջ նա ներառված է: Ֆրագմենտը կարող է գոյություն ունենալ անկախ ակտիվությունից, ավելացվել, հեռացվել, փոխարինվել կամ տեղադրվել հետադարձ(stack) հիշողության մեջ: Սա պահանջում է լրացուցիչ callback-ներ այս վիճակների կառավարելու համար:

Հիմնական տարբերությունները՝

  • Կապ ակտիվության հետ: Ֆրագմենտը ունի callback-ներ, որոնք կապված են նրա ակտիվության հետ միանալու (onAttach) և անջատելու (onDetach) հետ: Սա թույլ է տալիս ֆրագմենտին փոխազդել ակտիվության կոնտեքստի հետ:
  • View ստեղծում: Ֆրագմենտը ունի առանձին onCreateView callback՝ իր View հիերարխիան ստեղծելու համար, մինչդեռ ակտիվությունը օգտագործում է setContentView: Սա կապված է այն բանի հետ, որ ֆրագմենտը կարող է չունենալ UI:
  • View ոչնչացում: Ֆրագմենտը ունի onDestroyView, որը կոչվում է, երբ View-ը ոչնչացվում է, բայց ֆրագմենտը կարող է շարունակել գոյություն ունենալ (օրինակ՝ հետադարձ(stack) հիշողության մեջ): Ակտիվությունը չունի ուղիղ համարժեք:
  • Կապ ակտիվության կյանքի ցիկլի հետ: Ֆրագմենտի կյանքի ցիկլը հետևում է ակտիվությանին, բայց ունի իր սեփական փուլերը յուրաքանչյուր ակտիվության փուլում: Օրինակ, onStart() ֆրագմենտի կոչվում է ակտիվության onStart()-ից հետո:

Ֆրագմենտի հիմնական callback-ները, որոնք բացակայում են ակտիվությունից:

  • onAttach()
  • onCreateView()
  • onViewCreated()
  • onDestroyView()
  • onDetach()

Այս ամենը թույլ է տալիս ավելի ճկուն կառավարել ֆրագմենտի վիճակը ակտիվության մեջ և մշակել նրա ավելացման, հեռացման և փոխարինման սցենարները: