2017-03-11 12 views
0

私はサーバーからダウンロードする100の画像を持っており、それぞれのサイズはほぼ200kbです。この目的をアプリに提供するためには、サービスORインテントサービスを作成する必要があります。私はインテントサービスがワーカースレッド上で実行されるため、この状況に最適であることを知っています。私の唯一の懸念は、私のアプリケーションはまた、さまざまなニーズのために他のスレッドを開始することです。時間がたつとスレッドが多すぎるとパフォーマンスが低下する可能性があります。私は意図的なサービスやサービスを別々のプロセスで決定するというジレンマに陥っています。別のプロセスを作成することは、すべての方法で利益を得る可能性があります。あなたは何を言っていますか ?いつ別のプロセスをAndroidで開始するのですか?

答えて

0

問題ではありません。あなたの最初のマルチスレッドのクラスを覚えているなら、すべてのスレッドが同時に動かないと言われるかもしれませんが、 "1つはしばらく実行されてから2番目のスレッドが実行され、次に1つは再び実行され、プロセッサに2つのスレッドまたは100を使用するかどうかは関係ありませんので、パフォーマンスには影響しません。 ただし、最初にダウンロードするイメージを最初に10枚待つことを忘れないでください。遅い接続をダウンロードするには画像が長すぎます。

0

もちろん、インテントサービスはワーカースレッドで実行され、サービスはメインスレッドで実行されています。だから、あなたがサービスで画像をダウンロードしたい場合、あなたはまだそれがここで同じ作業ですので、新しいスレッドを作成する必要がありますが、テントサービスは、サービスを超えるいくつかの利点を持っている:約それは必要ません新しいプロセスを作成

1.Background thread (You no need to create Thread to download images when Service need) 

2.Automatic queuing the Intents delivered to onStartCommand(), so if one Intent is being processed by onHandleIntent() on the background thread, other commands queue up waiting their turn. 

3. the automatic shutdown of the IntentService when job done (in service you need to call stopService) 

。 1つのIntentServiceを作成して画像をダウンロードしてください。より大きなデータを使用すると、複数のスレッドを作成して同時に複数のパートをダウンロードできますが、100枚の画像と200kbの画像が必要ありません。

関連する問題