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()və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.ViewModelViewModelStoreOwnermə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 üçüngetLastNonConfigurationInstance()istifadə olunur. Köhnəlmiş,ViewModelüstün tutulur.// Activity-də override fun onRetainCustomNonConfigurationInstance(): Any? { return myObjectToRetain } // Obyekti almaq val retainedObject = lastCustomNonConfigurationInstance as? MyDataApplicationsinfi: 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 |