我有調用第三方API並傳遞一些參數,並得到JSON作爲結果的的AsyncTask。但是,有時需要太多時間來執行。假設我想只執行這個AsyncTask 30秒,如果它沒有在30秒內完成,那麼放棄AsyncTask並繼續執行剩下的代碼。你能給一些參考/例子嗎?限制AsyncTask執行時間的簡單方法是什麼?
0
A
回答
2
您可以設置CountDownTimer
停止AsyncTask
如果它運行超過30秒。
例如:
new CountDownTimer(30000, 28000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
asyncTask.cancel(true); //
}
}.start();
另一種方式是處理程序。
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
asyncTask.cancel(true);
}
},30000)
另一種簡單的方法是設置連接超時您的HTTP調用到30秒。它會在30秒後自動結束異步任務。
+0
我可以在主/ UI線程代碼呢? – djac
+0
當然可以。它實際上在後臺運行。不要在倒數計時器內使用UI組件。 –
+0
查看我更新的答案。如果您還需要在其中使用UI組件。您可以使用處理程序。 –
相關問題
- 1. 計算python腳本執行時間的最簡單方法是什麼?
- 2. 限制訪問我的Jsonifier的最簡單方法是什麼?
- 3. 用python執行WHOIS協議最簡單的方法是什麼?
- 4. 從R中的文件繪製時間值的最簡單方法是什麼?
- 5. didReceiveNotificationRequest:withContentHandler - 執行時間限制?
- 6. 限制在java中的方法的執行時間
- 7. 什麼會導致AsyncTask無法執行?
- 8. 如何限制方法的實際執行時間
- 9. 限制訪問某些網站頁面的最簡單方法是什麼?
- 10. 限制apache主機下載速度的簡單方法是什麼?
- 11. 限制什麼是傳遞給方法
- 12. 從Firefox執行本地文件的最簡單方法是什麼?
- 13. 在觸發器中執行否定的最簡單方法是什麼?
- 14. 用Python執行模塊化矩陣反演的最簡單方法是什麼?
- 15. 執行簡單IP地址比較的最高性能方法是什麼?
- 16. 使CC.NET本地觸發器執行程序最簡單的方法是什麼?
- 17. 在C#.NET 2.0中,反向執行foreach的簡單方法是什麼?
- 18. 什麼是在Visual C++中執行查詢的最簡單方法
- 19. 在Perl中執行XPath查詢XML數據的最簡單方法是什麼?
- 20. 每30秒執行一次Java類最簡單的方法是什麼?
- 21. 複製列的最簡單方法是什麼?
- 22. 什麼是製作自我提取PE的最簡單方法?
- 23. 用OpenGL ES繪製紋理最簡單的方法是什麼?
- 24. 強制刪除WebSocket連接最簡單的方法是什麼?
- 25. 在iPhone上繪製點的最簡單方法是什麼?
- 26. 什麼是不使用OpenGL繪製精靈的簡單方法?
- 27. 限制php的執行時間
- 28. 「真正」 的執行時間限制
- 29. 執行Java函數的時間限制
- 30. 什麼是「腳本執行」時間dom.max_script_run_time
檢查[這個蘇答案(https://stackoverflow.com/a/31601166/5392118) –