Android: как заставить поток пользовательского интерфейса ждать до завершения AsycTask - PullRequest
1 голос
/ 18 августа 2011

В настоящее время я выполняю тяжелую задачу в AsycTask, которая загружает изображения.Когда я делаю это через AsycTask, приложение закрывается и в logcat не появляется сообщение об ошибке.

    private class SendIncidentTask extends AsyncTask<Double, Void, Void>{

            @Override
            protected Void doInBackground(Double... params) {
                lat1 = params[0];
                log1 = params[1];
                SendingIncident sincident  = new SendingIncident();
                sincident.sendInciWithoutAttachment(lat1, log1);
                sincident.submitWithAttachment(lat1, log1);
                return null;
            }

   }

Я думаю, что проблемы возникают, когда поток пользовательского интерфейса и AsycTask выполняются параллельно.Как я могу заставить поток пользовательского интерфейса ждать, пока AsycTask не завершится?

Заранее спасибо.

Ответы [ 2 ]

5 голосов
/ 18 августа 2011

Используйте метод onPostExecute для загрузки пользовательского интерфейса. Он вызывается автоматически после завершения doInBackground

2 голосов
/ 18 августа 2011

Я думаю, что вы упускаете реальную проблему, и выполнение того, что вы хотите, приведет к ANR. Но если вы хотите, чтобы поток пользовательского интерфейса ожидал, просто запустите его как метод действия, а не как AsyncTask.

...