Я постараюсь ответить на ваш вопрос здесь, но вопрос не ясен.
Если вы хотите, чтобы проверить, есть ли AsyncTask
завершено или не в ArrayList, мы можем использовать getStatus
call, которые возвращают нам status, и один из статуса, к счастью, это FINISHED
, так что вы можете проверить свой статус любой данной AsyncTask.
Если вы хотите спать до тех пор, пока не закончится один из AsyncTask
, лучший подход, вероятно, включает в себя что-то делать в onPostExecute
. Когда вы override it, вы можете сделать что-то, чтобы уведомить главный поток. Один из способов, вы можете сделать это здесь:
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
}
В вашем AsyncTask
, вы просто переопределить onPostExecute
что-то вроде этого
protected void onPostExecute (Result result) {
//do your thing
mainActivity.callBack(id);
}
Надеется, что это помогает.
Вы имеете в виду 'AsyncTask', правильно? Имена важны. И 'AsyncTask' используется в потоке пользовательского интерфейса, я хотел бы увидеть больше кода UI в этом примере. То, что на самом деле компилируется, было бы лучше. – markspace
что вы пытаетесь сделать? вопрос непонятен. – arsent
AsyncTask сообщает вам, когда он закончил, включив событие onPostExecute(). Для справки: http://developer.android.com/intl/es/reference/android/os/AsyncTask.html –