优化加载速度AsyncTask

时间:2014-03-24 14:47:09

标签: android multithreading android-networking

在我的应用程序中,我使用AsyncTask来加载文本和图像,而不是更少。现在有时它会在一秒钟内完成加载,其他时间可能需要大约5分钟。我之所以使用AsyncTask,只是因为有很多关于我的情况的信息。

现在我假设加载速度越来越慢的原因必须与我的互联网有关。但是我在android文档中遇到了这句话:

  

AsyncTask旨在成为Thread和Handler的辅助类,并不构成通用的线程框架。理想情况下,AsyncTasks应该用于短操作(最多几秒钟。)

我正在使用它吗?如果不是我应该使用什么,有什么是有用的文章。我一直在谷歌搜索网络最佳实践,但我没有找到一些详细的文档解释所有选项以及何时使用它们等。

我使用的教程示例:http://android-developers.blogspot.nl/2010/07/multithreading-for-performance.html

1 个答案:

答案 0 :(得分:0)

确实AsyncTask并非设计用于5分钟的执行时间,但查看链接到它的教程似乎没有为HTTP连接设置超时值。

URL url = new URL("http://tpbapp.com");     
connection.setConnectTimeout(1000); // 1 sec timeout to open the connection
connection.setReadTimeout(3000); // 3 sec timeout to load the data

您当然可以根据数据的大致大小调整这些值,但我发现将图像的连接超时设置为大于1秒可能会影响取消AsyncTask的效果。我写了blog post这个(滚动到底部)。