2010-04-24 32 views
8

OnCreate() öğesinde sonraki kod tarafından işlenebilecek görüntüleme nesnelerini oluşturduğundan, setContentView() öğesini bir etkinliğin başlarında çağırmanın önemli olduğunu okudum.Android setContentView işlemi

Yaşam döngüsü açısından görünüm, setContentView() çağrılır koymaz ekrana çekilir veya view nesneleri içindeki bilgileri oluşturmak/doldurmak için onCreate() işlevine izin verir ve aslında çizim yapmak için bekler onCreate() tamamlandıktan sonra mı?

Teşekkürler!

cevap

9

görünüşüdür olarak ekrana çizilmiş etmez yakında setContentView()

sayılı

olarak adlandırılır veya onCreate()/doldurulmasını oluşturmak için fonksiyonu izin verir şekilde görünüm nesneleri ve bilgileri, onCreate() tamamlandıktan sonra çizmek için bekler misiniz?

Evet. View nesneleri, setContentView()'un bir parçası olarak hemen oluşturulur. Ancak, tüm çizim işlemleri (onCreate() veya başka bir yerden), ana uygulama iş parçasının çalıştığı bir ileti kuyruğuna konan iletilere neden olur.

+0

Teşekkür ederiz! Ana uygulama iş parçacığının işlediği ileti kuyruğu hakkında daha ayrıntılı bilgi vermek için iyi bir kaynağa yönlendirebilir misiniz? Bu benim için yeni bir konsept, ben sadece Android programlamaya başladım. – stormin986

+2

Doğrudan bu konuda çok fazla yazılmadı. Genel kural şudur: Ekranı değiştirirse, yöntemi çağırdığınızda gerçek ekran değişikliği etkili olmaz (ör. 'TextView' üzerinde 'setText() '). Daha ziyade, yöntem çağrınız, iletiyi bekleyen istekleri temsil eden bir nesne oluşturur. Ana uygulama iş parçacığı kodunuzu çalıştırarak bağlanmadığı sırada bu sıra işlenir (ör., 'OnCreate()'). Bu yüzden, uzun süredir çalışan şeyleri ana uygulama dizisinden uzak tutmanız söylendi. – CommonsWare

+2

Bu, büyük olasılıkla, çoğu için açıktır, ama bir başlangıç ​​olarak ben de (Handler nesnesinin belgelerinden) bu yararlı bir ileti sırasının farkında olmadığım için de yararlı buldum: "Uygulamanız için bir işlem oluşturulduğunda" Ana iş parçacığı, üst düzey uygulama nesnelerini (faaliyetler, yayın alıcıları, vb.) ve oluşturdukları tüm pencereleri yönetmeye yarayan bir mesaj kuyruğu çalıştırmaya adanmıştır. – stormin986

İlgili konular