Sobes.tech
Junior

Android-də obyekti müvəqqəti saxlamaq necə mümkündür?

sobes.tech Süni İntellekt

AI-dan cavab

Android-də obyektləri müvəqqəti saxlamağın bir neçə yolu var, seçim onun ömrünə və komponentin tamamlanmasından sonra ona giriş ehtiyacına bağlıdır:

  • View vəziyyəti: View ilə əlaqəli obyektlər onun vəziyyətində saxlanıla bilər, bu vəziyyət View yenidən yaradıldıqda (məsələn, ekranın döndürülməsi zamanı) bərpa olunur. onSaveInstanceState()onRestoreInstanceState() istifadə olunur.
  • ViewModel: UI ilə əlaqəli məlumatları saxlamağın ən yaxşı yolu, Activity/Fragment konfiqurasiya dəyişikliklərini (məsələn, ekran döndürmələri) aşması lazım olan məlumatlar üçün. ViewModel ViewModelStoreOwner məhv olana qədər mövcuddur.
    // Activity/Fragment-də
    val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
    
    // ViewModel-də
    class MyViewModel : ViewModel() {
        var myObject: MyData? = null
    }
    
  • onRetainCustomNonConfigurationInstance() (köhnəlmiş): Activity-də konfiqurasiya dəyişikliklərini aşan istənilən obyektləri saxlamaq üçün metod. Obyekti almaq üçün getLastNonConfigurationInstance() istifadə olunur. Köhnəlmiş, ViewModel üstün tutulur.
    // Activity-də
    override fun onRetainCustomNonConfigurationInstance(): Any? {
        return myObjectToRetain
    }
    
    // Obyekti almaq
    val retainedObject = lastCustomNonConfigurationInstance as? MyData
    
  • Application sinfi: Tətbiqin bütün həyat dövrü boyunca yaşaması lazım olan obyektlər üçün. Çox məlumat saxlamaqdan ehtiyatlı olun.
  • Müvəqqəti fayllar: Daha böyük obyektlər üçün, onlar birbaşa yaddaşda yerləşmir və ya qısa müddətlik diskdə saxlanması tələb olunur.
Metod Ömür müddəti İstifadə
View vəziyyəti View-in həyatı + yenidən yaradılması Kiçik məlumatlar, View ilə əlaqəli
ViewModel Activity/Fragment həyatı UI məlumatları, konfiqurasiya dəyişikliklərini aşır
onRetainCustomNonConfigurationInstance() Activity həyatı + dəyişikliklər İstənilən obyektlər (köhnəlmiş)
Application sinfi Tətbiqin həyatı Qlobal obyektlər
Müvəqqəti fayllar İnkişaf etdirici tərəfindən təyin olunur Böyük obyektlər, müvəqqəti saxlama