2011-10-04 11 views
0

非常に多くのイメージファイルをダウンロードする必要があるAndroidアプリケーションを作成しています。以前の開発者は、さまざまなHttpClient型クラスを使用してそれを書きました。これらは進歩に関する情報を何も与えず、途中でダウンロードに失敗した場合は、欠けているビットを回復する方法はありません(私が知る限り)。Androidでのスレッドセーフなプログレッシブダウンロード

私は、特に遅い場合は、ダウンロードを再開できるように、ユーザーに進捗状況を報告したいので、HttpUrlConnectionを使用してこれを再実装しました。それはうまくいきますが、画像は壊れています。 Androidは、これが実際にスレッドセーフではないと言います。

私の言うところでは、マルチスレッドのダウンロード(私の同僚の報告はやや速い)と再開する能力のどちらかを選択しなければならないということです。 Android上で、スレッドセーフなHTTP接続クラスを自分で実装するのに手間がかかりません。

答えて

0

2つのことが思い浮かびます。 AsyncTaskクラス(参考:Painless Threading)は、この種のために構築されており、new DownloadManagerクラスは、必要に応じて再起動し、デバイスの再起動などを通じて持続するかなり堅牢なメソッドとして開発されました。彼らがあなたが必要とするものかどうかを見てください。

+0

これらはすでに 'AsyncTasks'内で実行されています。問題は、ダウンロードがお互いに相互作用しているように見えることです。 DownloadManagerは良いベットのように見えますが、ありがとうございます。 –

関連する問題