0

AndroidでHttpUrlConnectionのダウンロード速度制限を設定することは可能ですか?

私のアプリはデータを表示します。データは Web サーバーから取得されます。アプリに表示するために Web サーバーから読み込まれるデータには、次の 2 種類があります。 - 小さなファイル (約 1 MB) - 大きなファイル (約 100 MB)

問題は、約 100 MB で約 5 分かかる大きなファイルのダウンロードを開始すると、その間、アプリがほとんど使用できなくなることです。

典型的なシナリオは次のとおりです: ユーザーが大きなファイルをクリックします --> 大きなファイルがバックグラウンドでダウンロードされます。その間、ユーザーは別の小さなファイル (1 MB、サーバーからロードするのに数秒かかるはずです) を表示したいと考えています。しかし問題は、最初のダウンロード (大きなファイルのロード) が帯域幅全体を使用するため、小さなファイルのダウンロードに (数秒ではなく) 約 2 分かかることです。

そのため、大きなファイルの速度制限を設定するか (帯域幅の半分など)、ダウンロード用の優先キューを実装したいと思います...

ダウンロード制限を設定するにはどうすればよいですか?

4

1 に答える 1

1

APIレベル9以上で開発している場合は、前のコメンターが提案したように DownloadManager を使用します。これに関する問題は、ダウンロードが通知バーに表示され、それを望まない場合があることです。

私が見る限り、Android で使用される HttpClient を使用して特定のダウンロードの帯域幅を制限する方法はありません。しかし、ファイルごとに AsyncTask を使用してファイルをダウンロードしていると推測しており、AsyncTasks は連続して実行されるため、2 番目のファイルのダウンロードが開始されない理由が説明される可能性があります。

このタイプのバックグラウンド ダウンロードに最適なRoboSpiceを検討することを強くお勧めします。一度に複数のファイルをダウンロードすることもできると確信しています。

于 2013-02-08T16:48:44.263 に答える