Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuidas toimib mvvmcrossis


Kuidas toimib mvvmcrossis


MVVMCROSS -i haudemine viitab vaatemodelli oleku salvestamise ja taastamise protsessile, kui rakendus peatatakse või lõpetatakse madala mälutingimuste tõttu, mis on tavaline stsenaarium mobiiliplatvormides nagu Windows Phone ja Android. MVVMCROSS pakub mehhanisme selle protsessi tõhusaks käsitlemiseks.

ehitus- ja elutsükli

MVVMCROSS ViewModels kiirendatakse ROK -i konteineri abil, mis süstib sõltuvused ViewModelisse. MVVMcrossi vaatemodelli elutsükkel sisaldab mitmeid peamisi meetodeid:

- Konstruktsioon: ViewModel luuakse sõltuvustega, mis on süstitud ROK -i konteineri kaudu.
- init (): initsialiseerib vaatemodelli navigeerimisparameetritega.
- ReloadState (): taastab vaatemodelli oleku pärast haugamist.
- Start (): kutsutud, kui lähtestamine ja rehüdratsioon on lõpule viidud [3].

Säiliv riik

Kui rakendus haudetakse, kutsub MVVMCROSS ViewModeli meetodit "SaveStateTobundle". See meetod võimaldab teil salvestada oma ViewModeli oleku, salvestades andmed `imvxBundlesse. Soovitav on kasutada JSON -i serialiseerimist keerukate andmete salvestamiseks [1].

oleku taastamine

Pärast rakenduse taasaktiveerimist üritab MVVMCROSS ViewModeli olekut taastada. Oleku taastamise täpne meetod võib siiski erineda sõltuvalt MVVMCROSSi platvormist ja versioonist. Üldiselt kasutatakse salvestatud olekuga vaatemodelli rehüdreerimiseks meetodit "Reloadstate" [3].

platvormipõhised kaalutlused

Iga MVVMCROSSi toetatud platvorm käitleb hauaplatsi erinevalt:

- Windows Phone: Tombstoning käideldakse selliste leheürituste kaudu nagu `onnavigatedto ja` onnavigedfromi kaudu. MVVMCROSS pakub mehhanisme nende sündmuste ajal oleku salvestamiseks ja taastamiseks, kuid see võib nõuda täiendavat seadistust, et tagada oleku nõuetekohane taastamine [4] [5].
- Android: MVVMCROSS tegeleb haugamisega, säästes ja taastades vaatemodelli oleku, kui rakendus on peatatud või jätkatakse. Probleemid võivad tekkida, kui tagakülg on kustutatud või kui navigeerimisparameetreid pole korralikult salvestatud [6].

väljakutsed ja lahendused

MVVMCROSS -is haude käitlemine võib olla keeruline, eriti parameetritega navigeerimisel. Navigeerimisparameetrite salvestamine on ülioluline koos ViewModeli olekuga, et tagada rakenduse oleku õige taastamine [6] [9]. Lisaks võib abistajate teekide või kohandatud lahenduste kasutamine lihtsustada oleku salvestamise ja taastamise protsessi erinevatel platvormidel [5] [8].

Kokkuvõtlikult pakub MVVMCross tugevat raamistikku hauaplatsi käitlemiseks, säästes ja taastades vaatemodelli oleku. Kuid see nõuab platvormipõhiste nüansside hoolikat rakendamist ja kaalumist, et tagada rakenduste sujuv taastamine.

Tsitaadid:
]
[2] https://www.mvvmcross.com/mvvmcross-51-release/
[3] https://stackoverflow.com/questions/29372480/mvvmcross-viewmodel-lafecycle
[4] https://stackoverflow.com/questions/16023307/mvvmcross-and-tombstoning
]
[6] https://github.com/mvvmcross/mvvmcross/issues/834
[7] https://github.com/mvvmcross/mvvmcross/blob/develovel/changelog.md
[8] https://jesseliberty.com/2011/04/08/tombstoning-and-mvvm/
[9] https://github.com/mvvmcross/mvvmcross/issues/2458
[10] https://www.mvvmcross.com/mvvmcross-56-release/