У меня есть работа, которую необходимо выполнить в следующем порядке:
В основном задании: -Показать диалог прогресса -Получить и разобрать XML из веб-диалога -Отключить -Переключиться к действию ListView, которое использует массив из проанализированного XMLв первом действии
Моя проблема в том, что, поскольку у меня есть работа по извлечению / анализу в ASyncTask, основное действие немедленно пытается загрузить новое действие, даже если мне нужно, чтобы работа по извлечению / анализу была выполнена сначала, потому что этополучает данные для listView (новое действие).Как я могу убедиться, что новое действие не загружается, пока работа ASyncTask не будет завершена?
Вот пример того, с чем я работаю:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button submit = (Button) findViewById(R.id.submitButton);
submit.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
EditText text = (EditText) findViewById(R.id.entry);
input = text.getText().toString();
input = input.replace(" ", "%20"); //replace spaces with %20 for URL specification
WeatherRetrievalTask wt = new WeatherRetrievalTask();
wt.execute();
Bundle bun = new Bundle();
bun.putParcelableArray("in", (Parcelable[])weather);
Intent myIntent = new Intent(view.getContext(), WeeklyDisplayActivity.class);
myIntent.putExtras(bun);
startActivityForResult(myIntent, 0);
}
});
}
* Игнорировать эту работу пакета,так как это тема для другого вопроса, который мне нужно задать ...
Итак, startActivityForResult должен дождаться завершения ASyncTask и закрытия диалогового окна, прежде чем он запустится, потому что сначала ему нужны данные о погоде, чтобызаполнить вид списка.