私はこれを数日前から修正しようとしていますが、無駄です。各サービスは、ファイルをダウンロードする -インターネットが動作していないときにダウンロードを停止しますか?
- サービスがキューに入れていると、彼らは時間 に1つずつ処理されているアレイ内のすべてのファイル名のサービスを開始するには:基本的に、私がやっていることはこれです私は時々、携帯電話でインターネット、特にWIFI 1が、それはページがロードされませんのでにおける対応のdoesntと、ダウンロードが停止または取得ファイルをダウンロードしていた場合< ==問題はここに
あるサーバーから25%と言うことができます。今私はいつこれがサービスを停止することができ、何日もこれをやろうとしているが、何も起こらないことを知りたい。 ファイル1: ダウンロードの進捗状況:1 1 1 1 1 1 1 2 2 2 2 2 2 2を
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);
}
これは、ファイルがダウンロードされているとき、私は通常得るものです:これは私がこれまで持っているものです3 3 3 3 3 3 4 4 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7 7 7 8 8 8 9 9 9 9 9 9 10 10 10 10 10 10 ... 100
ファイル2と同様のもの: ダウンロード進捗状況:1 1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 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時に立ち往生)
このような状況が発生したときにサービスを停止できるようにする方法を追加するにはどうすればいいですか?
私は本当に、この時間のおかげで緊急の助けが必要です!
EDIT: これは、ファイルをダウンロードしているときにインターネットが停止したときに取得するログです。あなたが見ることができるようにダウンロードは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
まず、AsyncTaskまたはthreadpoolではなく、Serviceでこれを実行してもよろしいですか? IntentServiceを使用するか、自分のサービス内のスレッドを処理しますか? 100回のダウンロード100回のファイルは、私にとって妥当ではありません。 – yorkw
私は自分のサービスの実装を使用しています。私はダウンロードを保持するキューを制御するThreadを持っています。それは正常に動作します、それは問題ではない、probはどのようにインターネットがアクセスできない(まだネットワークに接続されている間に)サービスを停止するかです。 – bytebiscuit