2015-05-23 11 views
0

Я делаю запрос на геокодирование, используя AsyncTask, который должен завершить выполнение, прежде чем переходить к другому AsyncTask, который будет использовать результаты запроса геокодирования, чтобы сделать другой вызов другой конечной точки из MainActivity.Как заставить приложение ждать, пока AsyncTask завершит свою работу, прежде чем переходить к другим задачам (Android)

Я думал о том, чтобы заставить его зацикливаться, используя флаг «done», установленный первой AsyncTask, который, возможно, даже не работает, и кажется очень взломанным. Кто-нибудь есть идея, как справиться с этим?

ответ

1

AsyncTask s есть метод крюка onPostExecute(), где вы сможете обработать его результаты.

Оттуда вы можете просто вызвать любые методы, которые вы хотите выполнить после завершения AsyncTask.

Например:

protected void onPostExecute(Long yourResult) { 
    processYourResult(yourResult); 

    // Method startMoreLogic() will be executed after the AsyncTask is finished. 
    startMoreLogic(); 
} 
+0

Хорошо, я не думал об этом. Я сделаю это. – compsciguy

0

сделать свой AsyncTask в качестве частного класса и поставить все, что ждать результата на onPoseExecute().

Или добавить .get() в метод, в котором вы называете свою асинтезу.

+0

Спасибо за предложение. Я пробовал оба решения, и оба предложения работали! – compsciguy

Смежные вопросы