我有调用第三方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) –