Birisi, Android'deki kullanıcı arabiriminin yalnızca kullanıcı arayüzünü neden güncelleyebildiğini açıklayabilir mi? Neden başka bir evre UI'yi güncelleyemiyor? Konu hakkında android developper kılavuz üzerinde belirtildiği gibiAndroid'de yalnızca kullanıcı arayüzü iş parçacığı UI'yi neden güncelleyebilir?
cevap
Documentation devletleri UI iş parçacığı engellemeyin edilir olun: Böylece orada Android'in tek iplik modeline iki kural sade thread-safe değil. Böylece, tek iplik modeli UI'nin aynı anda farklı dişler tarafından değiştirilmemesini sağlar.
: uygulama kullanıcı etkileşimine yanıt olarak yoğun çalışmalarını gerçekleştirdiğinde
, bu tek iplik modeli düzgün uygulamayı uygulamadığınız sürece kötü bir performans sağlayabilir. Özellikle, kullanıcı arabiriminde her şey gerçekleşiyorsa, ağ erişimi veya veritabanı sorguları gibi uzun işlemlerin gerçekleştirilmesi tüm kullanıcı arayüzünü engeller. Konu engellendiğinde, çizim etkinlikleri de dahil olmak üzere hiçbir olay gönderilemez. Kullanıcının bakış açısından, uygulama askıda gibi görünüyor. Daha da kötüsü, kullanıcı arayüzü iş parçacığı birkaç saniyeden daha uzun bir süre boyunca engellenirse (yaklaşık 5 saniye), kullanıcı kötü amaçlı "uygulama yanıt vermiyor" (ANR) iletişim kutusuyla sunulur. Kullanıcı daha sonra uygulamanızı bırakmaya ve mutsuzlarsa kaldırmaya karar verebilir. Ayrıca, Andoid UI araç takımı iş parçacığı güvenli değildir. Yani, , UI'nizi bir çalışan iş parçacığından etkilememelisiniz; kullanıcı arabiriminize UI iş parçacığından tüm manipülasyonunu yapmanız gerekir.
Android UI araçUI iş parçacığı dışında alınan Android UI araç seti erişmek etmeyin
- 1. Bir daemon iş parçacığı yalnızca
- 2. Ana iş parçacığı neden bekler
- 3. İş parçacığı tanıtıcısı iş parçacığı tanıtıcısı
- 4. WPF iş parçacığı: bir denetimin veri içeriğini UI olmayan bir iş parçacığında güncelleyebilir miyim?
- 5. PLINQ neden sadece iki iş parçacığı kullanıyor?
- 6. iş parçacığı içinde yerel depolama iş parçacığı
- 7. SOLID ve kullanıcı arayüzü?
- 8. Kullanıcı Arayüzü, tepkisel yerel
- 9. UI iş parçacığı dağıtıcısını nasıl alabilirim?
- 10. iş parçacığı
- 11. Android: ana kullanıcı arayüzü iş parçacığında çağrılan View.onClick() yöntemi nedir?
- 12. Bir iş parçacığı yakalanmamış özel durum, yalnızca iş parçacığı veya tüm işlemi mi öldürüyor?
- 13. JSF'de neden SessionScoped ManagedBean iş parçacığı güvenli hale getirmeliyiz?
- 14. İşleyici vs İş parçacığı
- 15. İş parçacığı önceliğinin değiştirilmesi
- 16. UI'dan ayrı iş parçacığı
- 17. Ana iş parçacığı
- 18. notifyAll iş parçacığı uyanıyor.
- 19. gdb - iş parçacığı günlüğü
- 20. WPF iş parçacığı C#
- 21. Ayrı iş parçacığı içinde
- 22. Qt: Arka plan iş parçacığı yenileme UI iş parçacığı
- 23. Marionette LayoutView Kullanıcı Arayüzü karma dizeleri döndürür
- 24. Kullanıcı arayüzü kullanıcı tarafından gösterildiğinde ne yapılıyor?
- 25. İşlev yalnızca ana iş parçacığında çağrılabilir, neden?
- 26. Android'de Kullanıcı Arayüzü unsurlarını inceleyin
- 27. Semantik Kullanıcı Arayüzü - Temayı Değiştir
- 28. Neden std :: queue :: empty() iş parçacığı güvenli değil? Const işlevleri iş parçacığı güvenli midir?
- 29. Maksimum iş parçacığı sorunu
- 30. UEFI'da bir iş parçacığı oluşturma
Şu ana kadar gördüğüm neredeyse tüm UI framework'leri işte böyle ... –
bkz: http://stackoverflow.com/questions/5544447/why-are-most-ui-frameworks-single-threaded – Boann