Вы можете выполнить экземпляр AsyncTask
только один раз.На самом деле вы создаете два экземпляра, но вы все равно должны называть его так, чтобы его никогда не вызывали:
new DownloadWebPageTask().execute(new String[] { "http://yahoo.com" });
new DownloadWebPageTask().execute(new String[] { "http://google.com" });
вместо этого:
DownloadWebPageTask task = new DownloadWebPageTask();
task.execute(new String[] { "http://google.com" });
Я думаю, что вы бежитев проблему здесь:
private void EndA()
{
Debug("EndA()");
StartB();
}
Ваше значение для g_GetWhat
меняется, как только начинается StartB.Таким образом, когда выполнение возвращается из EndA()
, следующий оператор if становится истинным, поскольку значение g_GetWhat
изменилось.
if(g_GetWhat == 1) { EndA(); }
if(g_GetWhat == 2) { EndB(); }
Значение для g_GetWhat
фактически равно 2, поэтому вы видитерезультат, который вы видите.Вы должны передать g_GetWhat в AsyncTask, когда вы вызываете его, и сделать его переменной экземпляра задачи.