Sobes.tech
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() va onRestoreInstanceState() ishlatiladi.
  • ViewModel: UI bilan bog'liq ma'lumotlarni saqlashning eng yaxshi usuli, ular Activity/Fragment konfiguratsiya o'zgarishlarini (masalan, ekran burilishlarini) davom ettirishi kerak. ViewModel ViewModelStoreOwner yo'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 uchun getLastNonConfigurationInstance() ishlatiladi. Eskirgan, ViewModel afzalroq.
    // Activityda
    override fun onRetainCustomNonConfigurationInstance(): Any? {
        return myObjectToRetain
    }
    
    // Ob'ektni olish
    val retainedObject = lastCustomNonConfigurationInstance as? MyData
    
  • Application sinfi: 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