2010-07-23 15 views
5

Android için bir Etkinlik'in çalışma döngüsünün ayrıntıları hakkında herhangi bir belge bulamıyorum.Android Run Döngü Anatomisi

Apple, "anatomy of a run loop" belgelerini belgeler ve bu da tam olarak aradığım şeydir. Android belgeleri, yaşam döngüsü durum şemasında "Activity Is Running" yazıyor. Açıkçası bu bir tür çalışma döngüsü tarafından yedekleniyor.

Herkesin bir Aktivitenin çalışma döngüsünün iç yapısına ilişkin bir içgörü (aka Documentation) var mı?

düzenleme - Çalıştırma döngüsünün esasen sahip olduğu ve ana kullanıcı arayüzü iş parçacığı tarafından çalıştırıldığını varsaydığımı açıklığa kavuşturmalıyım. Mevcut Faaliyetin işlevselliği, belirli bir noktada bu runoop'a muhtemelen enjekte edilir. Genel kullanıcı arayüzü iş parçacığı döngüsünün yanı sıra, Faaliyetin hangi rolü üstlendiğiyle ilgileniyorum.

+0

ben eksik gereken bir şey. "Etkinlik Çalışıyor" dan daha fazla ayrıntıya ihtiyaç var mı? Android'in bu döngüde neden uyguladığı, uygulamanızın yapması gerekenleri yapması için uygun öğeleri "uygulamanız" veya "uzatmanız" sürece niçin önemlidir? – kiswa

+0

Yivli uygulamalar yazarken, çalışma döngülerinin özellikleri çok çeşitli nedenlerden dolayı yararlı bilgiler olabilir. Bence, merakın tek başına geçerli bir sebep olacağını düşünüyorum. – DougW

+0

"Bir Faaliyetin çalışma döngüsünün içsel içgörüsü hakkında görüş" sorusu çok fazla bir sorudur. – CommonsWare

cevap

3

Kısa cevap "Endişelenme, senin için bitti."

Faaliyetler ve diğer yapılar, android.os.Handler aracılığıyla iletişim kurarak android.os.Looper numaralı telefonun üzerine oturmaktadır. Bir Looper, "çalışma döngüsünüzü", bir kuyrudan iletileri göndererek ve iş parçacığı boş olduğunda engellemeyi yönetir. Handler s bir iş parçacığının Looper ile iletişim kurar ve ileti sırasını ile çalışmak için bir mekanizma sağlar.

Çoğu zaman biriyle doğrudan çalışmaya ihtiyacınız olmayacak. Etkinlikler ve Hizmetler gibi başlıca uygulama bileşenleriniz için yaşam döngüsü etkinlikleri kodunuza gönderilir. Eğer kaputun altında ne kadar şüpheleriniz varsa, her ikisi için kaynaklar mevcuttur:

https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/os/Looper.java

https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/os/Handler.java

+0

Bu bilginin daha sindirilmiş bir sürümü olduğunu umuyordum, fakat yok ise ve bu cevap. Teşekkürler adamp. – DougW

0

Güncelleme: tarafından başvurulan spesifik bir şey gerçekten var

var "Etkinlik çalışıyor." Etkinlik sadece UI'sini, girişi ele almayı, gerekli işlevleri yürütmeyi ve başka bir Aktivite başlatmayı gösteriyor.

Çok iş parçacığının çalışma döngüsünde ne gibi etkilere sahip olduğunu düşünüyorsanız, gerçekten somut bir ilişki yoktur. Konularınız sadece işlerini yapabilir ve Etkinlik durumu bağımsız olarak çalışır ve UI'sini otomatik olarak günceller (postInvalidate()'u doğru aradığınızda). Orijinal


: http://developer.android.com/reference/android/app/Activity.html

Her Faaliyet "ömür boyu" belirten ve bu size ne buysa o olabilir devletler:

bu sayfadaki ilk diyagram bir göz atın Arıyorsun.

+0

Bağlandığım şey ... Bunun bir parçası olan "Etkinlik Çalışıyor" bölümünde neler olduğunu bilmek istiyorum. – DougW

+0

Woops, benim hatam. Cevabımı bir dakika içinde düzenlerim. –

+0

Sorun yok Andy. Yine de temelde bir çalışma döngüsü var ve eminim ki iphone için bağladığıma benziyor. Faaliyetler "koşma" durumu, küresel UI Thread 'runloop içine enjekte edilir, ama kesinlikle her geri dönüşler, devlet, vb kontrol etmek için her döngüde adımlar kümesi vardır. Ben bütün bu shebang gibi görünüyor merak ediyorum. – DougW