Sobes.tech
Junior — Middle

Kullanıcı arayüzü durumunu saklamak için hangi mekanizma daha iyidir: ViewModel mi yoksa SaveInstanceState mi, ve aralarındaki farklar nelerdir?

sobes.tech yapay zeka

AI'dan gelen yanıt

ViewModel ve SaveInstanceState, UI durumunu korumak için kullanılır, ancak farklı şekilde çalışır ve farklı görevler içindir.

  • ViewModel, yapılandırma değişiklikleri sırasında (örneğin, ekran döndürme) verileri bellekte saklar. Activity veya Fragment kadar yaşar ve UI yeniden oluşturulurken yok edilmez. Büyük veri hacimleri ve iş mantığı için uygundur.

  • SaveInstanceState, küçük verileri bir Bundle içinde saklama mekanizmasıdır ve Activity sistem tarafından yok edildiğinde (örneğin, bellek yetersizliği durumunda) korunur. SaveInstanceState içindeki veriler, Activity yeniden oluşturulduğunda geri yüklenir.

Hangi yöntemi kullanmak daha iyidir?

  • Ekran döndürmesine dayanacak UI durumunu saklamak için ViewModel kullanmak daha iyidir.
  • Sistem tarafından uygulamanın tamamen yok edilmesinden sonra geri yüklenmesi gereken kritik veriler için SaveInstanceState kullanılır.

Genellikle birlikte kullanılırlar: Ana mantık ve veriler için ViewModel, hızlıca geri yüklenmesi gereken küçük primitive veriler için SaveInstanceState.