我一直在試圖解決這個問題,但是無濟於事。從本質上講,我在做什麼是這樣的:停止下載時,互聯網不工作?
- 開始爲每一個文件名的服務在Array
- 服務放在一個隊列中,它們被處理一次一個 - 每個服務下載文件從服務器< ==問題是在這裏
當我下載文件有時上網的手機,尤其是WIFI一個它不認爲頁面不響應加載並下載停止或獲取讓我們說25%。現在我想知道什麼時候發生這種情況,以便我可以停止服務,並且幾天來一直試圖這樣做,但沒有任何效果。這是我到目前爲止有:
URL url = new URL(full_url);
HttpURLConnection conexion = (HttpURLConnection)url.openConnection();
//conexion.setConnectTimeout(10000);
conexion.connect();
while ((count = input.read(data)) > 0 && lenghtOfFile > 0){
total += count;
downloadProgress = (int)((total*100)/lenghtOfFile);
Log.e("downloadProgress","" + downloadProgress);
output.write(data, 0, count);
}
這是當文件被下載了什麼,我通常會得到: 文件1: 下載進度:1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 9 9 9 9 9 9 9 10 10 10 10 10 10 10 ... 100
然後文件2類似的東西: 下載進度:1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 8 8 8 8 9 9 9 9 9 9 9 10 10 10 10 10 10 10 ... 100
和讓我們說文件3的互聯網將下降(不斷開,只是網頁不會加載) ,我得到這樣的事情: 文件3: 8 8 8 8 8 9 9 9 9 9 9 9(互聯網出現故障,卡在9)
如何添加一個方法來檢查何時發生這種情況,以便我可以停止服務!
我真的需要緊急幫助,感謝您的時間!
編輯: 這是我在下載文件時因特網卡時得到的LOG。你可以看到的下載已經達到了29%,然後互聯網連接變得沒有反應,在某種程度上,它不會拋出任何異常它就像這樣!
11-16 16:18:39.769: ERROR/totaltotal(24691): 29
11-16 16:18:39.859: ERROR/totaltotal(24691): 29
11-16 16:18:39.869: ERROR/totaltotal(24691): 29
11-16 16:18:39.869: ERROR/totaltotal(24691): 29
11-16 16:18:39.879: ERROR/totaltotal(24691): 29
11-16 16:19:04.119: DEBUG/ConnectivityService(162): reportNetworkCondition(1, 0)
11-16 16:19:04.119: DEBUG/ConnectivityService(162): Inet connectivity change, net=1, condition=0,mActiveDefaultNetwork=1
11-16 16:19:04.119: DEBUG/ConnectivityService(162): starting a change hold
11-16 16:19:05.940: DEBUG/BatteryService(162): update start
11-16 16:19:05.940: DEBUG/BatteryService(162): update start
11-16 16:19:05.950: DEBUG/BatteryService(162): update start
11-16 16:19:07.129: DEBUG/ConnectivityService(162): Inet hold end, net=1, condition =0, published condition =0
11-16 16:19:07.129: DEBUG/ConnectivityService(162): no change in condition - aborting
11-16 16:19:15.959: DEBUG/BatteryService(162): update start
11-16 16:19:15.959: DEBUG/BatteryService(162): update start
11-16 16:19:15.969: DEBUG/BatteryService(162): update start
11-16 16:19:25.979: DEBUG/BatteryService(162): update start
11-16 16:19:25.979: DEBUG/BatteryService(162): update start
11-16 16:19:25.989: DEBUG/BatteryService(162): update start
首先,你確定要用Service來做到這一點,而不是AsyncTask或threadpool?您是否使用IntentService或自己處理服務中的線程?開始服務100次下載100個文件對我來說看起來不合理。 – yorkw
我正在使用我自己的服務實現。我有一個線程可以控制一個持有下載的隊列。它工作正常,這不是問題,問題是當互聯網不可訪問時(當仍然連接到網絡時)如何停止服務 – bytebiscuit