Android, yapılandırma değişiklikleri veya yaşam döngüsü sırasında ViewModel durumunun korunma mekanizmasını nasıl uygular?
sobes.tech yapay zeka
AI'dan gelen yanıt
Android'de ViewModel, yaşam döngüsünü dikkate alarak UI verilerini depolamak ve yönetmek için tasarlanmıştır. Konfigürasyon değişiklikleri (örneğin, ekran döndürme) sırasında sistem Activity veya Fragment'i yok eder, ancak ViewModel korunur ve yeni örneklere tekrar atanır.
Bu, ViewModelProvider aracılığıyla sağlanır; bu, ViewModel'i bileşenin yaşam döngüsüne bağlar. ViewModel, sahibi (Activity/Fragment) ile ilişkili olduğu sürece bellekte tutulur. Bir bileşen, konfigürasyon değişikliği nedeniyle yok edildiğinde, ViewModel yok edilmez, yerine yeni bir örnekte yeniden kullanılır.
ViewModel içinde durumu saklamak için SavedStateHandle kullanılabilir; bu, süreç yok edilmesi veya konfigürasyon değişikliklerinin ötesinde durumları kaydetmeye ve geri yüklemeye olanak tanıyan özel bir nesnedir.
SavedStateHandle kullanım örneği:
class MyViewModel(private val state: SavedStateHandle) : ViewModel() {
var counter: Int
get() = state.get<Int>("counter") ?: 0
set(value) = state.set("counter", value)
}
Bu şekilde, ViewModel konfigürasyon değişiklikleri sırasında verileri bellekte tutar ve SavedStateHandle, süreç yok edilmesi gibi daha ciddi olaylarda durumu korumaya yardımcı olur.