2011-10-12 15 views
5

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?

+2

Şu ana kadar gördüğüm neredeyse tüm UI framework'leri işte böyle ... –

+2

bkz: http://stackoverflow.com/questions/5544447/why-are-most-ui-frameworks-single-threaded – Boann

cevap

8

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.

3

: 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

İlgili konular