2016-04-05 20 views
-4

Ben android geliştirme konusunda yeni ve ben zaten çalışan bazı async görevler beklemek nasıl sormak istiyorum. Ayrıca ana iş parçacığı uyumaya çalıştığımda, bunların çoğu sistem tarafından askıya alınır. Ben onları eklemek için bir arraylist kullandığınızda ve her biri için çağrı(), çoğu zaman zamanında bitirmek olsun. Lütfen bana bir kod örneği verin, çünkü üç gün boyunca araştırıyorum ... Thx !!Android async görevler bekle

for(){ 
    async... 
    async.execute(); 
    arraylist.add(async); 
} 
... 
for(arraylist.size){ 
    arraylist.get().get(); 
} 
+0

AsyncTask 'demek istiyorsun, değil mi? İsimler önemlidir. Ve UI iş parçacığı üzerinde "AsyncTask" kullanılır, bu örnekte UI kodunun daha fazlasını görmek istiyorum. Aslında derler en iyi olurdu. – markspace

+0

Ne yapmaya çalışıyorsun? soru açık değil. – arsent

+0

Bir AsyncTask, "onPostExecute()" etkinliğini tetikleyerek bittiğinde size söyler. Referansınız için: http://developer.android.com/intl/es/reference/android/os/AsyncTask.html –

cevap

0

Sorunuzu burada yanıtlamaya çalışacağım ama soru açık değil.

bir AsyncTask tamamlamış ya da olmasın bir arraylist içinde biz bize status dönmek getStatuscall ve durum birini kullanabilirsiniz olup olmadığını kontrol etmek istiyorsanız size durumunuzu kontrol edebilirsiniz, neyse ki, FINISHED olduğunu Herhangi bir AsyncTask.

AsyncTask'dan biri bitene kadar uyumak istiyorsanız, en iyi yaklaşım muhtemelen onPostExecute içinde bir şeyler yapmayı gerektirir. Ne zaman override it, ana iş parçacığı bildirmek için bir şeyler yapabilirsiniz. sadece bu yardımcı olur bu

protected void onPostExecute (Result result) { 
    //do your thing 
    mainActivity.callBack(id); 
} 

Hope gibi bir şeye onPostExecute geçersiz, senin AsyncTask yılında

public interface Callback { 
    public void callBack(int id); 
} 
public class MainActivity implements Callback { 
    private void function() { 
    //do your thing 
    AsyncTask task0 = new MyAsyncTask(this, 0); //implement your own asynctask here, 
    //with one of the parameters this activity so that you can get a callback. 
    //Also, optionally give in the id so that you know what index of asynctask is finished first. 
    //do the same thing for other tasks 
    task1.execute(params); 
    } 

    public void callBack(int id) { 
    arrayList.get(id).get(); //this is done 
    } 

: Bunu yapmanın yollarından biri burada.