7

Android'de, ekran yönelimi değiştiğinde (yatay ve dikey) onCreate yöntemi çağrılır; bu yöntem düzgün bir şekilde işlenmezse sonuç çok basit bir şekilde düzeni değiştirdiğinde tüm etkinliği yeniden oluşturur. tüm aynı bilgileri saklayın.Android: Verimli Ekran Döndürme İşlevi

Bunu çözmek için birkaç yol biliyorum, ancak en verimli şekilde ilgileniyorum. 1) yöntemini geçersiz kılarak ve boş bırakarak yönlendirmeyi değiştireceğime dair bildirimi anlatma.

2) onSaveInstanceState() geçersiz kılmak ve burada verilerin bu tüm seçenekler vardır) verilerin bir paket oluşturmak ve Açıkçası onSaveInstanceState()

gönderelim onPause() geçersiz kıl onCreate()

3'te yeniden yerleştirilmesi için kaydetmek, ancak daha iyi bir uygulama (küçük, orta, büyük miktarda veri)

teşekkür ederiz hangi

+1

Tek yol, Aktivitenin yeniden oluşturulmasını durdurabilir ve sadece dikey ve yatay düzen arasında geçiş yapabilirsiniz. Cevabımı kontrol et [burada] (http://stackoverflow.com/questions/7749675/how-to-stop-changing-the-orientation-when-a-progress-bar-is-spinning-in-android/7749727#7749727) –

+0

Bu şekilde güzelce çalışıyor gibi gözükürken, 'res/layout-land' klasörünü kullanarak düzenlerdeki otomatik değişikliği kullanabilmek istiyorum. Tabii ki, basit bir etkinlik için çok fazla masraf yok. – Sababado

+0

Eh, bu otomatik olarak düzenini değiştirecek, sadece içerik kodu bu kodda değiştirmeniz gerekir. –

cevap

13

Bazı cihaz konfigürasyonları değiştirebilir çalışma zamanı sırasında (ekran yönü, klavye kullanılabilirliği ve dil gibi). Böyle bir değişiklik meydana geldiğinde, Android çalışan Etkinliği yeniden başlatır (onDestroy() çağrılır, bunu onCreate() izler).

  • düzgün bir yeniden işlemek için, etkinlik Eğer uygulama hakkında verileri kaydetmek, böylece sizin aktivitesini yok etmeden önce Android onSaveInstanceState() çağırır yılında normal Etkinlik yaşam döngüsü aracılığıyla eski durumuna getirir önemlidir belirtmek, bildirmek. , onCreate() veya onRestoreInstanceState() sırasında durumu geri yükleyebilirsiniz.

Ancak, verilerin başvurunuzu yeniden başlatmayı ve geri yükleme önemli miktarda masraflı olabilen bir durumla karşı karşıya ve olumsuz bir kullanıcı deneyimi oluşturabilir.

  1. Retain an object during a configuration change

    etkinlik sırasında bir yapılandırma değişiklikleri yeniden fakat etkinlik yeni örneğine bir durum bilgisi Nesne taşımak için izin verin: Böyle bir durumda, iki seçenek vardır.

  2. Handle the configuration change yourself

    Önlemek belirli yapılandırma değişiklikleri sırasında aktivitenizi yeniden başlatılmasını sistem, ancak elle gerektiği gibi etkinliği güncellemek böylece konfigürasyonları, değişiklik yaptığınızda bir geri arama alırlar. Sadece düzenini değiştirmek için ihtiyaç başına olarak ben düşünüyorum:

Yani, uygulama ile veri işlem ve kullanıcı deneyimi sahil gereğince Eğer

DÜZENLEME .. sizin için en iyi olanı seçebilir kullanmanız ve değişiklikleri yapmalısınız.

+0

Bu, parçalara nasıl uygulanır? –