Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ako funguje Tombstoning v MVVMCross


Ako funguje Tombstoning v MVVMCross


Tombstoning v MVVMCross sa vzťahuje na proces ukladania a obnovy stavu spoločnosti ViewModel, keď je aplikácia pozastavená alebo ukončená z dôvodu nízkych podmienok pamäte, čo je bežný scenár v mobilných platformách ako Windows Phone a Android. MVVMCross poskytuje mechanizmy na efektívne zvládnutie tohto procesu.

Construction and Lifecycle

MVVMCross ViewModels sú inštancie pomocou kontajnera IOC, ktorý vkladá závislosti do programu ViewModel. Životný cyklus ViewModel v MVVMCross obsahuje niekoľko kľúčových metód:

- Konštrukcia: ViewModel sa vytvára so závislosťami vstreknutými prostredníctvom kontajnera IOC.
- init (): Inicializuje ViewModel s navigačnými parametrami.
- ReloadState (): Obnovuje stav ViewModel po Tombstoningu.
- Start (): Volá sa pri inicializácii a rehydratácii je kompletný [3].

Saving State

Ak je aplikácia Tombstoned, MVVMCross volá metódu `Savestatetobundle` na ViewModel metódu. Táto metóda vám umožňuje uložiť stav vášho ViewModel uložením údajov do `IMVXBundle`. Je vhodné použiť serializáciu JSON na ukladanie komplexných údajov [1].

Obnovujúci stav

Po reaktivácii aplikácie sa MVVMCross pokúša obnoviť stav ViewModel. Presná metóda obnovenia stavu sa však môže líšiť v závislosti od platformy a verzie MVVMCross. Metóda „ReloadState“ sa vo všeobecnosti používa na rehydratáciu pohľadu s uloženým stavom [3].

Platforma špecifické úvahy

Každá platforma podporovaná spoločnosťou MVVMCross zvláda Tombstoning odlišne:

- Windows Phone: Tombstoning sa zaoberá udalosťami stránok ako „Onnavigatedto` a` OnNavigratedFrom`. MVVMCross poskytuje mechanizmy na uloženie a obnovenie stavu počas týchto udalostí, ale môže vyžadovať ďalšie nastavenie, aby sa zabezpečilo správne obnovenie stavu [4] [5].
- Android: MVVMCross spracúva Tombstoning uložením a obnovením stavu ViewModel, keď je aplikácia pozastavená alebo obnovená. Problémy však môžu vzniknúť, ak sa zápis vymaže alebo ak navigačné parametre nie sú správne uložené [6].

Výzvy a riešenia

Riešenie Tombstoning v MVVMCross môže byť náročné, najmä pri navigácii s parametrami. Je rozhodujúce uložiť navigačné parametre spolu so stavom ViewModel, aby sa zabezpečilo správne obnovenie stavu aplikácie [6] [9]. Použitie pomocných knižníc alebo vlastných riešení môže navyše zjednodušiť proces ukladania a obnovovania stavu na rôznych platformách [5] [8].

Stručne povedané, MVVMCross poskytuje robustný rámec na manipuláciu s názvom Tombstoning uložením a obnovením stavu ViewModel. Vyžaduje si však starostlivú implementáciu a zváženie nuancií špecifických pre platformu, aby sa zabezpečilo bezproblémové obnovenie aplikácií.

Citácie:
[1] https://www.mvvmcross.com/documentation/funmamentals/viewmodel-lifecycle
[2] https://www.mvvmcross.com/mvvmcross-51-release/
[3] https://stackoverflow.com/questions/29372480/mvvmcross-viewModel-Life-cycle
[4] https://stackoverflow.com/questions/16023307/mvvmcross-and-tomstoning
[5] https://www.kenneth-tuyers.net/2013/03/13/tombstoning-apony-easy-in-windows-phone-mvvvm/
[6] https://github.com/mvvmcross/mvvmcross/issues/834
[7] https://github.com/mvvmcross/mvvmcross/blob/develop/changelog.md
[8] https://jesseliberty.com/2011/04/08/tombstoning-mdmvvm/
[9] https://github.com/mvvmcross/mvvmcross/issues/2458
[10] https://www.mvvmcross.com/mvvmcross-56-release/