ベストアンサー1
場合によっては、 または のいずれかを使用して同じタスクを実行できますAsyncTask
が、Service
通常はどちらか一方が他方よりもタスクに適しています。
AsyncTask
は、UI スレッドでは実行できない、一度限りの時間のかかるタスク用に設計されています。一般的な例としては、ボタンが押されたときにデータを取得/処理することが挙げられます。
Service
は、バックグラウンドで継続的に実行されるように設計されています。ボタンが押されたときにデータを取得する上記の例では、サービスを開始し、データを取得させてから停止することもできますが、これは非効率的です。AsyncTask
一度実行してデータを返し、終了する を使用する方がはるかに高速です。
ただし、バックグラウンドで継続的に何かを実行する必要がある場合は、 がService
最適です。この例としては、音楽の再生、新しいデータの継続的なチェックなどが挙げられます。
また、Sherif がすでに述べたように、サービスは必ずしも UI スレッドから実行されるわけではありません。
ほとんどの場合、Service
は、アプリケーションがActivity
開いていないときでもコードを実行したい場合に使用します。AsyncTask
は、UI スレッドからコードを実行することを非常に簡単にするように設計されています。