我想在活動中設置一個變量,以我的AsyncTask的結果來設定。我已閱讀,我不能返回一個變量,那我就必須設置變量在我的活動,然後改變它在onPostExecute
方法。等待的AsyncTask完成或變量
我的問題是,完成的AsyncTask後,我需要使用該變量。我遇到了麻煩,因爲迄今爲止我嘗試過的所有解決方案都會導致UI凍結,然後無法響應。
我迄今爲止嘗試:
while (!task.isCancelled()) {
// Wait...
}
而且
while (variable == null) {
// Wait ...
}
是我在做什麼,從一個的AsyncTask變量傳遞給我的活動最好的方法是什麼?如果是的話,我該如何等待任務在活動中完成而不鎖定UI?
你不應該「等待」爲'AsyncTask'。它應該在完成時做一些事情,可能在'onPostExecute()'中。 – Eric
在'onPostExecute()'方法中,我將活動中的變量更改爲結果。我試圖做的是等到變量被改變。 – Dan
確實 - 不要這樣做。 'AsyncTask'的'onPostExecute()'本身應該開始你想在任務完成後發生的一系列事件。沒有其他的代碼應該依賴於這個任務。 – Eric