Junior
Androidda ob'ektni vaqtinchalik qanday saqlash mumkin?
sobes.tech AI
AIdan javob
Androidda obyektni vaqtincha saqlashning bir nechta usullari mavjud, tanlov uning umriga va komponent tugagandan keyin unga kirish ehtiyojiga bog'liq:
- View holati: View bilan bog'liq obyektlar uning holatida saqlanishi mumkin, bu holat View qayta yaratilganda (masalan, ekran burilishida) tiklanadi.
onSaveInstanceState()vaonRestoreInstanceState()ishlatiladi. ViewModel: UI bilan bog'liq ma'lumotlarni saqlashning eng yaxshi usuli, ular Activity/Fragment konfiguratsiya o'zgarishlarini (masalan, ekran burilishlarini) davom ettirishi kerak.ViewModelViewModelStoreOwneryo'q qilinmaguncha mavjud.// Activity/Fragmentda val viewModel = ViewModelProvider(this).get(MyViewModel::class.java) // ViewModelda class MyViewModel : ViewModel() { var myObject: MyData? = null }onRetainCustomNonConfigurationInstance()(eskirgan): Activityda konfiguratsiya o'zgarishlarini davom ettiradigan ixtiyoriy obyektlarni saqlash uchun metod. Ob'ektni olish uchungetLastNonConfigurationInstance()ishlatiladi. Eskirgan,ViewModelafzalroq.// Activityda override fun onRetainCustomNonConfigurationInstance(): Any? { return myObjectToRetain } // Ob'ektni olish val retainedObject = lastCustomNonConfigurationInstance as? MyDataApplicationsinfi: Dastur davomida yashash kerak bo'lgan obyektlar uchun. Juda ko'p ma'lumot saqlashdan ehtiyot bo'lish kerak.- Vaqtinchalik fayllar: Katta obyektlar uchun, ular to'g'ridan-to'g'ri xotirada joylashmagan yoki qisqa muddatli diskda saqlash talab qilinadigan.
| Usul | Umr davomiyligi | Foydalanish |
|---|---|---|
| View holati | Viewning hayoti + qayta yaratish | Kichik ma'lumotlar, View bilan bog'liq |
| ViewModel | Activity/Fragment hayoti | UI ma'lumotlar, konfiguratsiya o'zgarishlarini davom ettiradi |
onRetainCustomNonConfigurationInstance() |
Activity hayoti + o'zgarishlar | Ixtiyoriy obyektlar (eskirgan) |
Application sinfi |
Dastur hayoti | Global obyektlar |
| Vaqtinchalik fayllar | Dasturchi belgilaydi | Katta obyektlar, vaqtinchalik saqlash |