Sobes.tech
Junior

Биз Androidда объектти убактылуу сактап калуу үчүн кандай кылышыбыз керек?

sobes.tech AI

AIден жооп

Убакыттык түрдө объектти Androidде сактоо ар кандай жолдор менен ишке ашырылышы мүмкүн, тандоо анын жашоо мөөнөтүнө жана компоненттин аяктагандан кийин жеткиликтүүлүгүнө көз каранды:

  • Viewтин абалы: View менен байланышкан объекттер анын абалында сакталат, ал кайра View түзүлгөндө (мисалы, экранды бурууда) калыбына келет. onSaveInstanceState() жана onRestoreInstanceState() колдонулат.
  • ViewModel: UI менен байланышкан маалыматтарды сактоо үчүн эң жакшы жол, ал конфигурация өзгөргөндө (мисалы, экранды буруу) да сакталат. ViewModel ViewModelStoreOwner жок кылынганга чейин болот.
    // Activity/Fragmentте
    val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
    
    // ViewModelде
    class MyViewModel : ViewModel() {
        var myObject: MyData? = null
    }
    
  • onRetainCustomNonConfigurationInstance() (тарыхтан чыккан): Activityте конфигурация өзгөргөндө сакталуучу произвольдуу объекттер үчүн ыкма. getLastNonConfigurationInstance() аркылуу ал объект алынып келет. Бул ыкма ViewModel үчүн алмаштырылган.
    // Activityте
    override fun onRetainCustomNonConfigurationInstance(): Any? {
        return myObjectToRetain
    }
    
    // Объектти алуу
    val retainedObject = lastCustomNonConfigurationInstance as? MyData
    
  • Application классы: Өмүр бою колдонмонун жашоо циклине туруштук берүүчү объекттер үчүн. Аларды сактоодо этият болуу керек, анткени көп маалымат сакталбашы керек.
  • Убактылуу файлдар: Жөнөкөй эс тутумга сыйбаган же кыска мөөнөттүү сактоо талап кылынган чоң объекттер үчүн.
Метод Жашоо мөөнөтү Колдонуу
Viewтин абалы Viewдин жашоосу + кайра абал Кичинекей маалыматтар, View менен байланышкан
ViewModel Activity/Fragment жашоосу UI маалыматтары, конфигурация өзгөргөндө да сакталат
onRetainCustomNonConfigurationInstance() Activity жашоосу + кайра абал Произвольдуу объекттер (тарыхтан чыккан)
Application классы Колдонмонун жашоосу Глобалдык объекттер
Убактылуу файлдар Дамытучунун чечими боюнча Чоң объекттер, убактылуу сактоо