Hızlı Arkaplan
Varsayılan olarak, Android'de bazı önemli yapılandırma değişiklikleri gerçekleştiğinde (yaygın bir örnek bir yönlendirme değişikliğidir), Android, bu tür değişikliklere uyum sağlaması için çalışan Etkinliği tamamen yeniden başlatır.
android:configChanges="keyboardHidden|orientation"
AndroidManifest'inizde tanımladığınızda , Android'e şunları söylüyorsunuz: "Lütfen klavye çıkarıldığında veya telefon döndürüldüğünde varsayılan sıfırlamayı yapmayın; Bunu kendim halletmek istiyorum. Evet, ne yaptığımı biliyorum "
Bu iyi bir şey mi? Yakında göreceğiz ...
Telaşa gerek yok?
Başladığınız profesyonellerden biri:
aktivitenizin döndürüldüğü konusunda endişelenmenize gerek yok
Çoğu durumda, insanlar yanlışlıkla bir yönelim değişikliği ("döndürme") tarafından üretilen bir hata olduğunda, bunu koyarak düzeltebileceklerine inanırlar android:configChanges="keyboardHidden|orientation"
.
Ancak, android: configChanges = "keyboardHidden | orientation" bir bandajdan başka bir şey değildir. Gerçekte, bir konfigürasyon değişikliğinin tetiklenmesinin birçok yolu vardır. Örneğin, kullanıcı yeni bir dil seçerse (örneğin, yerel ayar değişti), etkinliğiniz bir yönlendirme değişikliği ile aynı şekilde yeniden başlatılır. İsterseniz , tüm farklı yapılandırma değişikliği türlerinin bir listesini görüntüleyebilirsiniz .
Düzenleme : Daha da önemlisi, hackbod yorumlarda belirttiği gibi, uygulamanız arka planda olduğunda ve Android öldürerek bazı belleği boşaltmaya karar verirken etkinliğiniz de yeniden başlatılacak. Kullanıcı uygulamanıza geri döndüğünde, Android başka bir yapılandırma değişikliği varsa etkinliği olduğu gibi yeniden başlatmayı dener. Bunu başaramazsanız - kullanıcı mutlu olmaz ...
Başka bir deyişle, kullanmak android:configChanges="keyboardHidden|orientation"
"endişeleriniz" için bir çözüm değildir. Doğru yol, aktivitelerinizi kodlamaktır, böylece Android'lerin yeniden başlattığı herhangi bir yeniden başlatmadan memnun olurlar. Bu, yolda size yardımcı olacak iyi bir uygulamadır, bu yüzden buna alışın.
Ne zaman kullanmalıyım?
Bahsettiğiniz gibi belirgin bir avantaj var. Bir döndürme için varsayılan yapılandırma değişikliğinin üzerine yazarak, işleri hızlandıracaksınız. Ancak, bu hız bir kolaylık fiyatı ile geliyor.
Basitçe söylemek gerekirse, hem portre hem de manzara için aynı düzeni kullanırsanız, üzerine yazma işlemini gerçekleştirirsiniz. Etkinliğin tümüyle yeniden doldurulması yerine, görünümler kalan alanı doldurmak için kolayca kayacaktır.
Bununla birlikte , herhangi bir nedenle cihaz yatay konumdayken farklı bir düzen kullanırsanız, Android'in Etkinliğinizi yeniden yüklemesi iyidir, çünkü daha sonra doğru düzeni yükleyecektir. [Bu tür bir Etkinlikte geçersiz kılmayı kullanırsanız ve çalışma zamanında büyülü bir yeniden düzen yapmak istiyorsanız ... iyi şanslar - çok basit değil]
Hızlı özet
Elbette, android:configChanges="keyboardHidden|orientation"
sizin için uygunsa , o zaman kullanın. Ancak LÜTFEN bir şey değiştiğinde ne olduğunu test ettiğinizden emin olun, çünkü tam bir Aktivitenin yeniden başlatılmasının tek yolu bir yön değişikliği değildir.