SORU
29 EYLÜL 2010, ÇARŞAMBA


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
29 EYLÜL 2010, ÇARŞAMBA


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Perihelion

    Perihelion

    23 NİSAN 2008
  • steven johns

    steven johns

    11 Mart 2011
  • sWooZie

    sWooZie

    9 ŞUBAT 2006