Android: AsyncTask とサービスの比較 質問する

Android: AsyncTask とサービスの比較 質問する

なぜ私はここでのほとんどの質問の答えを多く読むのかAsyncTaskローダーについては何もないサービス? サービスはあまり知られていないのでしょうか、それとも廃止されたり、不適切な属性があったりするのでしょうか? 違いは何でしょうか?

(ちなみに、これについては他にもスレッドがあることは知っていますが、実際の問題に対してどちらを使用するのがよいか開発者が簡単に判断するのに役立つような明確な違いを述べているスレッドはありません。)

ベストアンサー1

場合によっては、 または のいずれかを使用して同じタスクを実行できますAsyncTaskが、Service通常はどちらか一方が他方よりもタスクに適しています。

AsyncTaskは、UI スレッドでは実行できない、一度限りの時間のかかるタスク用に設計されています。一般的な例としては、ボタンが押されたときにデータを取得/処理することが挙げられます。

Serviceは、バックグラウンドで継続的に実行されるように設計されています。ボタンが押されたときにデータを取得する上記の例では、サービスを開始し、データを取得させてから停止することもできますが、これは非効率的です。AsyncTask一度実行してデータを返し、終了する を使用する方がはるかに高速です。

ただし、バックグラウンドで継続的に何かを実行する必要がある場合は、 がService最適です。この例としては、音楽の再生、新しいデータの継続的なチェックなどが挙げられます。

また、Sherif がすでに述べたように、サービスは必ずしも UI スレッドから実行されるわけではありません。

ほとんどの場合、Serviceは、アプリケーションがActivity開いていないときでもコードを実行したい場合に使用します。AsyncTaskは、UI スレッドからコードを実行することを非常に簡単にするように設計されています。

おすすめ記事