Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hogyan működik a Tombstoning az mvvmcross -ban


Hogyan működik a Tombstoning az mvvmcross -ban


Az MVVMCross -ban a sírszomítás a ViewModel állapotának megtakarításának és helyreállításának folyamatára utal, amikor az alkalmazást felfüggesztik vagy megszüntetik az alacsony memória körülmények miatt, ez egy általános forgatókönyv a mobil platformon, mint például a Windows Phone és az Android. Az MVVMCross mechanizmusokat biztosít a folyamat hatékony kezelésére.

Építés és életciklus

Az MVVMCross ViewModels egy IOB -tartály segítségével történik, amely függőségeket injektál a ViewModelbe. A ViewModel életciklusa az MVVMCross -ban számos kulcsfontosságú módszert tartalmaz:

- Építés: A ViewModel -t a NOB -tartályon keresztül injektált függőségekkel hozták létre.
- init (): inicializálja a ViewModel navigációs paraméterekkel.
- ReloadState (): Visszaállítja a ViewModel állapotát a sírok után.
- Start (): Hívja, ha az inicializálás és a rehidráció befejeződött [3].

Megtakarító állapot

Amikor egy alkalmazás sírkontással van, az MVVMCross a ViewModel „SaveStateBundle” módszerét hívja. Ez a módszer lehetővé teszi a ViewModel állapotának megmentését az adatok „imvxbundle” -ben történő tárolásával. Javasoljuk, hogy a JSON sorosítást használja a komplex adatok tárolására [1].

Az állapot helyreállítása

Az alkalmazás újraaktiválása után az MVVMCross megpróbálja visszaállítani a ViewModel állapotát. Az állapot helyreállításának pontos módszere azonban az MVVMCross platformjától és verziójától függően változhat. Általánosságban elmondható, hogy a „ReloadState” módszert a ViewModel rehidrálására használják a megmentett állapotban [3].

platformspecifikus megfontolások

Az MVVMCross által támogatott minden platform másképp kezeli a sírkontot:

- Windows Phone: A Tombstoning olyan oldalakon keresztül kezeli, mint a „OnnavigatedTo” és a „OnnavigatedFrom”. Az MVVMCross mechanizmusokat biztosít az állapot megmentésére és helyreállítására ezen események során, de ehhez további beállítást igényelhet a megfelelő állapot helyreállításának biztosítása érdekében [4] [5].
- Android: Az MVVMCross kezeli a Tombontingot a ViewModel állapot megtakarításával és helyreállításával, amikor az alkalmazást szüneteltetik vagy folytatják. Ugyanakkor problémák merülhetnek fel, ha a backstack törlődik, vagy ha a navigációs paramétereket nem mentik megfelelően [6].

kihívások és megoldások

A sírkatonálás kezelése az mvvmcross -ban kihívást jelenthet, különösen, ha paraméterekkel navigál. Alapvető fontosságú a navigációs paraméterek mentése és a ViewModel állapot, az alkalmazás állapotának helyes helyreállításának biztosítása érdekében [6] [9]. Ezenkívül a helper könyvtárak vagy az egyéni megoldások használata egyszerűsítheti az állapot megtakarításának és helyreállításának folyamatát a különböző platformokon [5] [8].

Összefoglalva: az MVVMCross robusztus keretet biztosít a sírstonizálás kezelésére a ViewModel állam megtakarításával és helyreállításával. Ez azonban a platformspecifikus árnyalatok gondos végrehajtását és megfontolását igényli a zökkenőmentes alkalmazás helyreállításának biztosítása érdekében.

Idézetek:
[1] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[2] https://www.mvvmcross.com/mvvmcross-51-reelease/
[3] https://stackoverflow.com/questions/29372480/mvvmcross-viewmodel-life-cycle
[4] https://stackoverflow.com/questions/16023307/mvvmcross-and-tombstoning
[5] https://www.kenneth-truyers.net/2013/03/13/tombstoning-made-easy-in-windows-phone-mvvm/
[6] https://github.com/mvvmcross/mvvmcross/issues/834
[7] https://github.com/mvvmcross/mvvmcross/blob/develop/changelog.md
[8] https://jeseliberty.com/2011/04/08/tombstoning-and-mvvm/
[9] https://github.com/mvvmcross/mvvmcross/issues/2458
[10] https://www.mvvmcross.com/mvvmcross-56-reelease/