Я использую AsyncTask при нажатии кнопки, чтобы обновить экран.Ниже приведена последовательность событий, которые происходят при нажатии кнопки
- . Ход выполнения
- . Вызывается doInBackground и инициализируется поток, который вызывает веб-службу.Веб-сервис выбирает / загружает данные.Флаг прохождения / неудачи устанавливается после вызова веб-службы.
Моя проблема в том, что onPostExecute никогда не вызывается, и поэтому экран никогда не обновляется.И, во-вторых, к тому времени, когда данные загружаются и веб-служба устанавливает флаг, мой код уже нажал return stmt в doInBackground.
Вопрос в том, как остановить выполнение в моей асинхронной задаче, чтобы веб-служба завершила загрузку / выгрузку данных и, наконец, выполнила onPostexecute.
FYI Я также получаю следующее предупреждение в eclipse
Метод onPostExecute (логический) из типа Screen.ConnectWebService никогда не используется локально
private class ConnectWebService extends AsyncTask <Void, Void, Boolean>
{
private final ProgressDialog pd = new ProgressDialog(screen.this);
protected void onPreExecute() {
pd.show(Screen.this, "Sync", "Sync in progress",true,false);
}
protected Boolean doInBackground(Void... unused) {
if (SyncInProgress == false)
{
CallWSThread();//creates thread which calls web service
}
Log.d("doInBackground","doInBackground");
return SyncStatus;
}
protected Void onPostExecute(boolean result)
{
pd.dismiss();
if (result==true) drawRadioButtons();
return null;
}
}