6
我試圖按順序執行相同的Asynctask。例如,讓我們有一個Asynctask A。現在假設A檢查某個服務器是否忙碌。如果它很忙,它會再次檢查....等等。假設它檢查5次,然後讓用戶知道服務不可用。
顯然可以使用相同的Asynctask。
試圖用循環來實現它可能會產生意想不到的結果作爲根據本 link,
的AsyncTask是一種發射後不管的實例和實例的AsyncTask只能使用一次。。
所以循環5次意味着Asynctask將被調用5次。但是如果服務器在第二次嘗試時是免費的,我不需要額外的檢查。此外,Android應用程序可能會掛起(我的)。糾正我,如果我在這個話題上錯了。
按順序多次運行相同的Asynctask
而且得到的答覆是,「calling task like new MyAsyncTask().execute("");
」
所以,如果我不喜歡這一點 - 例如,
new someAsyncTask() {
@Override
protected void onPostExecute(String msg) {
new someAsyncTask() {
@Override
protected void onPostExecute(String msg) {
....and so on 5 times.
}
}.execute(this);
}
}.execute(this);
應當依次呼叫5次,應該不會出現問題。
這是做這個還是其他解決方案存在的唯一方法?
如果我使用匿名的AsyncTask將這項工作? 我的意思是在我提供的問題中,我在其他java類中實現了asynctask類。我只是用在另一個班上。這會在那裏工作嗎?因爲那樣我就不得不再次寫'onPostExecute'。 –
我發佈了一個適用於獨立類的替代方案。 – tachyonflux
但我使用匿名Asynctask。並且在onPostExecute的獨立類中沒有被覆蓋。最重要的是在另一個班上完成的。如果onPostExecute位於獨立類上,您提供的示例將可用。但它會在匿名Asynctask上工作嗎? –