2011-11-17 76 views
2

在我的應用程序中,我使用AsyncTask類來創建HTTP連接並下載要顯示的信息。Android - 如何處理AsyncTask超時?

有時,數據量很大,需要一些時間。如果用戶和他們的手機恰好處於接收緩慢/不佳/有問題的地方,那麼可能會出現HTTP超時,或者他們可能一起連接不上,等等......

處理這些超時的最佳方法是什麼優雅?

我一直在創建一個Runnable處理程序,該程序在啓動AsyncTask後運行XX秒。 Runnable只會測試AsyncTask是否仍在運行,如果是這樣,假設數據連接速度太慢,請繼續並殺死線程並正常提供有關數據連接的錯誤消息。

這是一個很好的方法還是有更實際的方法?

回答

1

自從我爲Android編程已經有一段時間了,但我知道AsyncTask有一個更新事件(以跟蹤下載百分比等)。你可以用它來檢查自己。

+0

這隻適用於你知道你正在做的事情有多少次迭代的情況。就我而言,我正在從網頁下載一大堆內容。實際上並沒有一種簡單的方法來遍歷整個過程(除了可能提前從HTTP頭中確定內容大小或者沿着這些行來確定內容大小......)。 –

+2

我不能相信這樣一個可憐的惡霸得到了綠色標記大聲笑! – Josh