私はAndroidプロジェクトに取り組んでおり、GridViewにいくつかの画像をロードする必要があります。画像がキャッシュにある可能性があります。キャッシュがない場合は、インターネットサーバーにクエリを実行します。私の設計では、2つのスレッドを使用してロードタスクを実行します。キャッシュを読み取るための1つのスレッドと、ダウンロードするための1つのスレッド。つまり、UIを含む3つのスレッドがあります。それぞれに独自のメッセージキューがあり、ハンドラーを使用して通信します。
私の質問は、代わりにこの状況でバウンドサービスを使用する必要があるかどうかです。実際、私は上記の設計に気づきました。それは何も悪いことではないようですが、GCは非常に懸命に働いており、これはlogcatから推測できます。
もう1つの問題は、DDMSを使用してスレッドを監視すると、いくつかのスレッドが存在することです。これは、同じ読み込みメカニズムが複数のアクティビティで使用されているためです。onPause()が呼び出されている間、スレッドにメッセージループを終了させましたが、同時に生きているのは2つだけだと確信しています。しかし、私はそれらすべてをDDMSで見ることができます。(ところで、なぜスレッドがまだ存在するのですか?私はthread = nullにしました;)
つまり、私の質問は次のとおりです。この読み込みタスクは、バインドされたサービスの恩恵を受けることができますか?