2014-03-24 165 views
0

在我的應用程序中,我使用AsyncTask加載文本和圖像不是更少。現在有時會在一秒鐘內完成加載,而其他時間可能需要大約5分鐘。我之所以使用AsyncTask,是因爲關於我的情況有很多信息。優化加載速度AsyncTask

現在我假設更快,更慢加載的原因必須與我的互聯網做一些事情。然而,我碰到的Android文件上說:

AsyncTask被設計成圍繞線程和處理程序的助手類,並不構成通用的線程框架。理想情況下,AsyncTasks應該用於短操作(最多幾秒鐘)。

那麼我是否正確使用它?如果不是,我應該使用什麼以及哪些是有用的文章。我一直在google搜索網絡的最佳實踐,但我還沒有找到一些詳細的文件,說明所有的選項,當他們使用等

我已經使用了一個教程的例子:http://android-developers.blogspot.nl/2010/07/multithreading-for-performance.html

+1

和5分鐘的問題是什麼:由於連接問題導致大文件或超時? – nikis

+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(滾動到底部)。

+0

如果我在我的asynctask上使用這個應用程序會崩潰,如果它加載速度不夠快? – Shishi

+0

你需要用try/catch包裝它 – tpbapp