2010-08-17 14 views
10

'u tamamladıktan sonra çalışır durumda kalıyor Bir uygulama üzerinde çalışırken, iş parçacığı sayısının her zaman büyümeye devam ettiğini fark ettim. AsyncTask Threads, bir nedenden dolayı açık kalıyor (onaylama işlemini bitirdiler ve çıktıklarıma emin değilim). Bu türden daha fazla iş parçacığı oluşturmaya devam ediyorum ve süresiz olarak çalışmaya devam ediyorlar. Bu iş parçacıklarının derlemede sonlandırıldığını doğrulamanın bir yolu var mı? AsyncTasks iş parçacığı açık kaldığı bilinen sorunlar var mı? Android AsyncTask,

bu çalıştırırken:

public class DoNothingTask extends AsyncTask<Void, Void, Void> { 

     @Override 
     protected Void doInBackground(Void... params) { 
      // TODO Auto-generated method stub 
      return null; 
     } 

    } 

i

Thread[<ThreadNumber>AsyncTask#1](running)

folows olarak ben new DoNothingTask().execute(null); yapmak Debbuger her zaman için yeni bir iş parçacığı bakın, sorum neden bu? benim uygulamam AsyncTask'a dayanıyor ve yeni bir iş parçacığı oluşturamıyorum ve her görevden sonra hayatta kalmam.

sayesinde totem

cevap

10

:

CommonsWare açıklıyor:

AsyncTask bir iş parçacığı havuzu yönetir ThreadPoolExecutor ile oluşturuldu. 5 ila 128 iş parçacığı olacak. 5'ten fazla iş parçacığı varsa, bu ekstra iş parçacıkları kaldırılmadan önce en fazla 10 saniye boyunca sabit kalır. (not: bu rakamlar şu anda görünür açık kaynak kodları içindir ve Android sürümüne göre değişir).

AsyncTask dizelerini yalnız bırakın lütfen.

Kaynak soru: AsyncTask threads never die

-2

Sen

thread.join 

bir iplik tamamlar emin olmak için kullanmalıdır. Bunu yapıyor musun?

+3

Dont AsyncTask için geçerli olduğunu düşünüyorum(). – totem

1

Bunun ilişkili olup olmadığından emin değilim, ancak uygulamalardan birinde da benzer bir sorunla karşılaşıyorum.

TimerTask iş parçacıklarını başlatan bir etkinliğim var. Görevler belirtilen aralıkta düzgün bir şekilde yürütülür, ancak boşta kalma süresi geçtikten sonra, bu iş parçacıklarının sayısı artar (iş parçacığının açık kaldığını ve yeni iş parçacıklarının oluşturulduğunu gösterir). Sorun, uygulamanızı Android VM ile dinamik yükleme ve boşaltma oldu. Orijinal iş parçacıkları hiçbir zaman, her yeni uygulamada olduğu gibi, iş parçacığı başlatma işleminin gerçekleştiği yerde öldürüldü. Bu yüzden başvurumdaki toplam ileti sayısı artmaya başladı.

Uygulamanızda da benzer bir uygulama var mı?

Bunu da ben kafamı beceriyor ve sadece (iyi, daha bir cevap daha bir açıklamayı) bu cevap geldi edildi
+0

nope, zaten bir çekim olan AsyncTasks oluştururken konuları oluşturmuyorum. – totem

İlgili konular