Arka plan görev, ilerleme, iletişim, yönünü değiştirmek - 100% herhangi bir çalışma çözüm var mı?
Arka plan iş parçacığı (AsyncTask
kullanıyorum) internetten bazı verileri yükleme ve indirme işlemi sürerken bir iletişim kutusu görüntüler. Yönlendirme değişiklikleri, Aktivite yeniden ve daha sonra benim AsyncTask tamamlandı - progess iletişim kutusunu kapatmak ve yeni bir Etkinlik başlatmak istiyorum. Ama bazen dismissDialog çağıran bir istisna muhtemelen Etkinlik yok oldu ve yeni bir Etkinlik başladı henüz olmadı çünkü) atar.
Bu tür bir sorun (eğer kullanıcı değişiklikleri yönlendirme bile çalışan arka plan iş parçacığı UI güncelleme) işlemek için en iyi yolu nedir? Google'dan birileri sağladı "resmi çözüm"?
CEVAP
Adım #1: ** 1 static
iç içe geçmiş bir sınıf, ya da tamamen ayrı bir sınıf, sadece (statik olmayan iç içe geçmiş) bir iç sınıf olarak değil.
Adım #2: Veri üyesi) Activity
yapıcı ile sete AsyncTask
tutun ve bir pasör.
#3 Adım: Activity
geçerli kurucusu. ** 5, kaynağını oluştururken
onRetainNonConfigurationInstance()
, AsyncTask
orijinalden ayırma sonra, artık veda aktivite. geri adım #4:
Adım #5: Eğer getLastNonConfigurationInstance()
onCreate()
null
, AsyncTask
sınıfınıza koyun ve pasör görevi ile yeni aktivite ilişkilendirmek için arayın.
Adım #6: doInBackground()
. aktivite veri üyesi almıyordu
Eğer yukarıdaki tarifi takip ederseniz, bu iş olacak. onProgressUpdate()
onPostExecute()
onRetainNonConfigurationInstance()
başlangıç ve sonraki sonu onCreate()
arasında askıya alındı.
Here is a sample project tekniğinin gösterilmesi.
Başka bir yaklaşım AsyncTask
hendek IntentService
çalışmanıza hareket etmektir. Bu takdirde yapılacak iş uzun ve kullanıcı aktiviteleri açısından (büyük bir dosya indirirken örneğin) ne olursa olsun, devam etmesi gereken olabilir eğer özellikle yararlıdır. Kullanabilirsiniz sıralı yayın Intent
de faaliyet yanıt vermek için çalışma yapıldı (hala ön planda) ya da zam Notification
için izin kullanıcı eğer çalışma yapıldı. Bu model üzerinde daha fazla Here is a blog post.
Nasıl ilerleme iletişim ve arka plan i...
En iyi yolu bir NSView için arka plan ...
Bir anahtar kelime üzerine fare ile üz...
Görünüm animasyon değiştirmek Android ...
Nasıl'In vurgulanmış ise bir UİBu...