2

FTP サーバーから 1 つの大きな圧縮ファイル (複数のファイルを含む) をダウンロードする必要があります。ダウンロード中に、ユーザーまたはネットワークによって中断/一時停止された場合、壊れたダウンロード ファイルを保存する必要があります。後で、ユーザーは壊れた場所から同じファイルのダウンロードを再開できます。

4

2 に答える 2

3

DownloadManager クラスを使用できます。

ダウンロード マネージャーは、長時間実行される HTTP ダウンロードを処理するシステム サービスです。

http://developer.android.com/reference/android/app/DownloadManager.html を確認してください

上記のクラスは API レベル 9 以降で利用可能です。

于 2012-08-13T10:36:09.247 に答える
0

Range HTTP ヘッダーを使用して、ダウンロードするバイトの範囲を設定できます。以前にダウンロードしたバイト数を覚えておくだけです。Apache のクラスを使用すると、次のようになります。

DefaultHttpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(youSourceUri);

// That's the important part. Count represents the number of bytes already downloaded.
// We leave the range open, so it will download 'till the end of the file.
httpGet.addHeader(new BasicHeader("Range", "bytes=" + count + "-"));

HttpResponse response = httpClient.execute(httpGet);
HttpEntity entity = response.getEntity();
InputStream inputStream = entity.getContent();

// Then read from the input stream

適切な try/catch/finally 句を追加して、ストリームを安全に処理し、ストリームを必ず閉じてください。読みやすくするために、ここでは省略しました。

于 2016-03-04T13:47:41.257 に答える