Anlayış Parçası'In setRetainİnstance(boolean)
Belgeleri ile başlayacak
public void setRetainİnstance (boolean korumak)
Parça bir örneğini yeniden yaratma (bir yapılandırma değişikliği gibi) Etkinlik boyunca muhafaza olup olmadığını kontrol edin. Bu sadece arka yığını parçaları ile kullanılabilir. Set, parça ömrü bir etkinliği yeniden açtığınızda biraz farklı olacaktır:
- () onDestroy adlı olmayacaktır (ama onDetach() hala parça bugünkü etkinlikten müstakil olduğu için olacak).
- onCreate(Bundle) parçasını yeniden yaratılan olmadığı için çağrılır.
- onAttach(Aktivite) ve onActivityCreated(Bundle) adı verilecek.
Bazı sorularım var:
Bu parça da onun görünümünü korumak mı, yoksa bu yapılandırma değişikliği oluşturulur? Tam olarak nedir ""? korudu
Parça kullanıcı etkinliği bıraktığında yok olacak?
Neden arka parçaları yığını ile çalışmıyor mu?
Hangi anlamda bu yöntemi kullanmak için yapar durumlarda kullanın.
CEVAP
Her şeyden önce, muhafaza Parçaları my post check out. Yardımcı olabilir. :)
Şimdi sorularınızı cevaplayalım.
Fragmanı da korur
görünümtam olarak ne olduğunu, ya da bu yapılandırma değişikliği oluşturulur - devlet""? korudu
Evet, Fragment
'In devlet yapılandırma değişikliği karşısında korunur. Özellikle, "" parçası anlamına gelir . korudu ^em>değilyapılandırma değişiklikleri yok. Bu, Fragment
olacakkorudueğer yapılandırma değişikliği yok Activity
altında yatan nedenlerin bile.
Parça kullanıcı etkinliği bıraktığında yok olacak?
Activity
ler gibi, Fragment
s bellek kaynakları yetersiz olduğunda sistem tarafından yok edilebilir. Parçaları kendi örneğini korumak ister yapılandırma değişiklikleri arasında devlet ya da sistemi Activity
sen gidince Fragment
s yok edip etmeyeceğini üzerinde hiçbir etkisi olmayacaktır. Eğer Activity
(yani ev düğmesine basarak) bırakırsanız, Fragment
s olabilir ya da yok olabilir. Eğer bırakmak Activity
tuşlarına basarak geri düğmesi (böylece, arama finish()
ve etkin bir şekilde yok etmek Activity
), Activity
s ekli Fragment
s de yok.
Neden arka parçaları yığını ile çalışmıyor mu?
Orada muhtemelen birden çok sebep neden değil desteklenen, ama en belirgin nedeni bana olan Activity
tutar başvuru FragmentManager
FragmentManager
yönetir backstack. Yani, olursa olsun eğer seçtiğiniz için muhafaza Fragment
s, Activity
(ve böylece FragmentManager
'In backstack) yok olur bir yapılandırma değişikliği. İşe yaramayabilir nedeni başka şeyler de parçaları muhafaza zor olabilir çünküveolmayan muhafaza parçaları aynı backstack bulunması için izin verildi.
Hangi anlamda bu yöntemi kullanmak için yapar durumlarda kullanın.
Muhafaza parçaları etkinlik örneklerinde durumu bilgileri özellikle iş parçacığı yönetimi — propaganda için oldukça yararlı olabilir. Örneğin, bir parça Thread
AsyncTask
, operasyonunu yönetmek bir örneği için bir ev sahibi olarak hizmet verebilir. Daha fazla bilgi için bu konuda my blog post bkz.
Genel olarak, ben olsam tedavi benzer şekilde kullanma onConfigurationChanged
Activity
... kullanmıyorum ki gibi bir bandaid sırf sen çok tembel uygulamak/idare bir yönünü değiştirmek doğru. 26**için ihtiyacınız olduğunda kullanın sadece
Daha fazla anlayış setRetainİnstance(t...
Kullanmak neden Parça#setRetainİnstanc...
Nasıl boolean php dize dönüştürmek içi...
() startActivityForResult bir Parçası ...
Android anlayış renkler (6 karakter)...