SORU
25 HAZİRAN 2012, PAZARTESİ


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
3 Temmuz 2012, Salı


Her şeyden önce, muhafaza Parçaları my post check out. Yardımcı olabilir. :)

Şimdi sorularınızı cevaplayalım.

Fragmanı da korurgö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?

Activityler gibi, Fragments 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 Activitysen 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, Fragments 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), Activitys ekli Fragments 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 Fragments, 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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BigDawsVlogs

    BigDawsVlogs

    17 HAZİRAN 2013
  • Bryan Adams

    Bryan Adams

    30 Mart 2006
  • SDSARG3

    SDSARG3

    14 Mart 2009