'a geçirilenler yeniden oluşturulur. Intent BundleExtra aracılığıyla oluşturduğumda Etkinliğime bir ileti gönderirim. Şimdi, activity lifecycle numaralı telefona baktığımda, etkinliğim durduğunda (onStop
), başka bir uygulamanın uygulama süreci öldürülmesi için belleğe ihtiyacı var, ardından kullanıcı etkinliğe gider (onCreate
). Son onCreate geçtiğim orijinal booleanmı içerir mi? Boolean'ın kurtarılmasını istediğimi düşünürsem, OnSaveInstanceState
numaralı telefona kaydetmem gerekecek, doğru mu?Bir aktivite durdurulursa, getIntent()
cevap
I (dokümanlardan) Bu nedenle o OnPause kalıcı verileri kaydetmek için önemli olduğunu
Not() onSaveInstanceState (Bundle) yerine ikinci parçası olmadığı için için OnPause() kullanırsınız yaşam döngüsü geri aramalarının, bu nedenle belgelerinde açıklanan her durumda çağrılmaz.
sonra onCreate()
örneğin tekrar geri okuma veritabanı veya başka kaynaktan sen onu saklanan
Yani bağlı ne kadar önemli boolean değeri istediğiniz tasarruf mekanizmasının kullanacaktır olduğunu .. kalıcı devlet için:. Böyle basit metinler olarak http://developer.android.com/reference/android/app/Activity.html#SavingPersistentState
Ve UI devlet için bir Özet olarak Saving Android Activity state using Save Instance State
:, seçimleri burada açıklanan gibi onSaveInstanceState
kullanmak süreç öldürüldü boolean = gitmiş saklanmaz eğer :)
Ma uno V. Eğer gerçeği onSaveInstanceState (Bundle paket) Mevcut örneği devleti kaydetmek için tasarlanmıştır edilir()
OnPause ile gitmelidir senin durumunda, haklı. Uygulamanız öldürüldüğünde Yani, kaydedilen paket de
Sen boole'sini kaydetmek için SharedPreferences kullanabilirsiniz:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
sharedPreferences.edit().putBoolean("hiBoolean", booleanValue).commit();
Ve onCreate üzerine almak: Aslında
Boolean hiBoolean = sharedPreferences.getBoolean("hiBoolean", true);
'dan çağrıldığını izleyebilirim. Bu doğru değil. Uygulamanızı barındıran süreç öldürülürse, "örnek durum paketini kaydet" etkinliği, ActivityManager tarafından korunur ve kullanıcı uygulamanıza gittiğinde geri iletilir. Android bir işlem oluşturacak ve uygulamayı başlatacak, ardından yığının üstündeki etkinliği oluşturacak ve ardından en son kaydedilen örnek durum paketinde iletecektir. Daha önce bu paket, cihaz yeniden başlatılmaları arasında korunamadı, ancak Android her geçen gün harikalaşıyor ve sdk seviye 21'i başlatıyor, paket de yeniden başlatmaların arasında saklanıyor. –
, etkinlik yeniden yaratıldı, orijinal niyet hala kullanılacak. getIntent()
, ilk oluşturulduğunda yaptığı gibi aynı amacı döndürecektir. Ancak, etkinlik yeniden oluşturulduğunda korumak istediğiniz başka verileriniz varsa, saveInstanceState()
'u kullanarak kaydetmeniz gerekir. Bunu, cihazı aynı eylemle yok edeceği ve yeniden oluşturulacak şekilde çalışan bir etkinlikle döndürerek doğrulayabilirsiniz. Daha fazla bilgi için bkz. here.
- 1. getIntent(). GetStringExtra() null gösterir
- 2. aktivite
- 3. Tüm Aktivite Dilini Değiştir
- 4. Aranabilir Aktivite
- 5. Bir aktivite nasıl gösterilir?
- 6. Ana Aktivite, başka bir aktivite açtıktan sonra sıfırlar
- 7. Süper aktivite
- 8. getIntent() ve Intent öğesinin alt sınıfı
- 9. Aktivite arka planda çalışır
- 10. Aktivite içi etkinlik
- 11. Animasyon ÖNCEDEN aktivite değişikliği
- 12. UIAlertView'e Aktivite Göstergesi Ekleme
- 13. aktivite çok yavaş bitiyor
- 14. başlatılamıyor aktivite ComponentInfo (LogCat)
- 15. Cardview onclick yeni bir aktivite açar
- 16. Niyet kullanarak android bir aktivite nasıl durdurulur?
- 17. Bir IDialogContext'den Aktivite Bilgileri Nasıl Alınır
- 18. Bir uygulamayı başlattığımda hangi aktivite aranıyor?
- 19. ekranda aktivite başlarken yanıp söner android
- 20. google accessToken kullanmak artı bir aktivite olarak, Android Uygulama, farklı aktivite
- 21. böylece gibi Manifest'te o ana Aktivite tanımlamak mantıklı bir ebeveyni olan her aktivite için parentActivityName
- 22. Yönlendirmeden sonraki ikinci aktivite örneği
- 23. getIntent() ile savedInstanceState öğesinden gelen niyet arasındaki fark nedir?
- 24. Daha fazla aktivite hücresi CollectionViewCell
- 25. Aktivite başladığında AlarmManager nasıl durdurulur
- 26. Android: Fragmanı AsyncTask (Aktivite Yok)
- 27. Android aktivite yaşam döngüsünü kaydettirme
- 28. Eylem çubuğu ile diyalog temalı aktivite
- 29. Aktivite ile eylemi başlatın, ancak kategori
- 30. Android dosyasındaki Aktivite isimleri okunurken Android dosyasında
Mükemmel. Özet olarak tam olarak aradığım şey. Aslında bu boolean'ın gitmesini istiyorum, böylece onCreate'ın – jsb