私はサーバーからダウンロードする100の画像を持っており、それぞれのサイズはほぼ200kbです。この目的をアプリに提供するためには、サービスORインテントサービスを作成する必要があります。私はインテントサービスがワーカースレッド上で実行されるため、この状況に最適であることを知っています。私の唯一の懸念は、私のアプリケーションはまた、さまざまなニーズのために他のスレッドを開始することです。時間がたつとスレッドが多すぎるとパフォーマンスが低下する可能性があります。私は意図的なサービスやサービスを別々のプロセスで決定するというジレンマに陥っています。別のプロセスを作成することは、すべての方法で利益を得る可能性があります。あなたは何を言っていますか ?いつ別のプロセスをAndroidで開始するのですか?
0
A
答えて
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の画像が必要ありません。
関連する問題
- 1. 1つではなく2つのプロセスを開始するサブプロセス
- 2. linuxのキーストロークでプロセスを開始する
- 3. Rails - 別のプロセスからバックグラウンドプロセスを開始する(Resque)
- 4. 別のプロセスでアプリケーションコンテキストからアクティビティを開始
- 5. プロセスが手動で開始されるかタスクスケジューラから開始されるかを識別する方法
- 6. bashで5つの並行プロセスを開始するキックスタート
- 7. child_processのメソッドとは別の方法でプロセスを開始できますか?
- 8. COBOLで子プロセスを開始
- 9. パススペースでプロセスを開始
- 10. どのようにprogameを開始するプロセスは1つだけですか?
- 11. Android StudioでGitプロセスを開始できませんでした
- 12. トランザクションで新しいプロセスを開始
- 13. nodejsで新しいプロセスを開始
- 14. プロセス間の昇格:新しいプロセスを開始するには?
- 15. JavaからCygwinプロセスを開始する
- 16. マネージコードで別のEXEを開始する
- 17. start_childコールを開始したプロセスで子プロセスを登録する
- 18. プロセスを開始するときに開始位置をプログラムで設定する
- 19. 複数の引数を持つプロセスの開始プロセス(blender.exe)
- 20. 特定のデスクトップでプロセスを開始
- 21. Androidの動的開始アクティビティですか?
- 22. 既存のプロセスでのアンドロイドの開始
- 23. ブルートゥースペアリングのプロセスを開始するにはどうすればよいですか?
- 24. Windowsでプロセスの開始時間をプログラムで計算する
- 25. 別のクラスで別のアクティビティを開始
- 26. 条件プロセス特定のプロセスのインスタンス数を開始する
- 27. nodejsプロセスの停止をnpmで開始しますか?
- 28. 低い整合性レベルでプロセスを開始する方法
- 29. C++プロセスからJavaプロセスを開始する
- 30. Android - 別のアプリの最新のアクティビティを開始する