2012-01-07 16 views
1

私はファイルをダウンロードするサービスを手に入れました。このファイルの最大サイズは200Mbです。このファイルをダウンロードすると、接続が完全に使用されているため、他のHTTPリクエストは実行できません。小さなバックグラウンド要求がまだ送受信できるようにダウンロード速度を制限することはできますか?バックグラウンドジョブのダウンロード速度が遅くなりますか?

答えて

-1

あなたのコードはダウンロードファイルが完全にThreadで実行されていますか?

Serviceを使用すると、はあなたのコードが別のThreadで実行するという意味ではありません。実際には、onCreate(),onBind()などのServiceライフサイクルメソッドはメインアプリケーションスレッドで呼び出されます。メインスレッドでネットワークから何かをダウンロードすると、他の要求をブロックする理由になる可能性があります。とにかく、ネットワーク/データベース/ファイルで動作するすべてのコードは、別のスレッドで実行する必要があります。

ネットワーク操作に別のスレッドを使用している場合、データの各部分の間にwhileサイクルでThread.sleep(10)を挿入すると、ストリームからデータが読み込まれます。

+0

すべてのダウンロードはスレッドで実行されています。 Thread.sleepはダウンロード速度を設定できないため、私が使用したいものではありません。 200kb/sまたは30kb/s。 –

関連する問題