() onSaveİnstanceState ve onRestoreİnstanceState ()
Ve Activity
yöntemleri onSaveInstanceState()
onRestoreInstanceState()
kullanma durumunu kaydetmek ve geri yüklemek için çalışıyorum.
Sorun asla onRestoreInstanceState()
yöntemi girer. Biri bana bunun nedenini bana açıklayabilir mi?
CEVAP
onRestoreInstanceState()
denirsadece ne zaman yenidenaktivite sonrasıöldürdüişletim sistemi tarafından. Böyle bir durum oldu:
- cihaz değişiklikleri (aktivite yok ve yeniden) yönlendirme
- senin önünde başka bir etkinlik var ve bir noktada OS boş bellek (örneğin) için aktivite öldürür. Etkinlik
onRestoreInstanceState()
başlattığınızda dahaki sefere verilir.
Kontrast: eger etkinlik ve vurmak Back
düğmesi cihazı, etkinlik bitiş()ed (yani bence spesifik ve masaüstü uygulama) ve bir dahaki sefere sen Başlat uygulaması başladı "taze", yani olmadan kurtardı durumu nedeniyle bilerek çıkıldı o zaman vurmak Back
.
Karmaşanın bir başka kaynak bir uygulama başka bir uygulama odağı kaybettiğinde onSaveInstanceState()
deniyor ama uygulamanızın geri gidin onRestoreInstanceState()
çağrılamaz. Bu durumda açıklanan ilk soru, Yani eğer aktivite DEĞİLDİ öldürdü dönem boyunca diğer etkinlik oldu ön onRestoreInstanceState()
olmayacak diye aktiviteniz oldukça fazla "canlı".
onRestoreInstanceState()
belgelerinde belirtildiği gibi, tüm, bütün:
Çoğu uygulamaları sadece onCreate(Bundle) onların geri yüklemek için kullanır bazen uygun işte tüm bunlardan sonra bunu devlet, ama başlatma veya alt karar vermek için izin vermek için yapıldı varsayılan uygulama kullanmak için. Bu varsayılan uygulama yöntem daha önce herhangi bir görüş geri bir devlet yapar onSaveİnstanceState(Bundle) tarafından dondurulmuş.
Activity
sınıflara sürece onRestoreInstanceState()
geçersiz kılmak için bir sebep Yoktur ve eğer biri sizin alt sınıf alt sınıf beklenmektedir. okudum gibi:
İllegalStateException: önlemek için Na...
java.lang.İllegalStateException: onSav...
'In onSaveİnstanceState parçası()...
özel durum "ben İllegalStateExcep...
android fragment onRestoreİnstanceStat...