IntentService
とService
の違いを理解してください。
つまり、サービスは開発者がバックグラウンド操作を設定するためのより広範な実装であり、IntentServiceはバックグラウンドスレッドの作成とクリーンアップを処理する「ファイアアンドフォーゲット」操作に役立ちます。
ドキュメントから:
ServiceServiceは、ユーザーと対話せずに長時間実行される操作を実行するか、他のアプリケーションに機能を提供するというアプリケーションの要望を表すアプリケーションコンポーネントです。使用する。
IntentServiceServiceはIntentServiceの基本クラスです非同期リクエストを処理するサービス(インテントとして表現)オンデマンド。クライアントは、startService(Intent)
呼び出しを介して要求を送信します。サービスは必要に応じて開始され、ワーカースレッドを使用して各Intentを順番に処理し、仕事が尽きたときに停止します。
このドキュメントを参照してください- http://developer.Android.com/reference/Android/app/IntentService.html
Service
は、サービス実装の基本クラスです。 Service
は、アプリケーションのメインスレッドで実行されるため、アプリケーションのパフォーマンスが低下する場合があります。したがって、サービスの直接のサブクラスであるIntentService
は、物事を簡単にするために使用できます。
IntentService
は、バックグラウンドで特定のタスクを実行するために使用されます。完了すると、IntentService
のインスタンスは自動的に終了します。その使用例は、インターネットから特定のリソースをダウンロードすることです。
差
Service
クラスはアプリケーションのメインスレッドを使用し、IntentService
はワーカースレッドを作成し、そのスレッドを使用してサービスを実行します。IntentService
は、一度に1つのインテントをonHandleIntent()
に渡すキューを作成します。したがって、マルチスレッドを実装するには、Service
クラスを直接拡張する必要があります。 Service
クラスは、stopSelf()
を使用して手動で停止する必要があります。一方、IntentService
は、実行が終了すると自動的に停止します。IntentService
は、null
を返すonBind()
を実装します。これは、IntentService
をデフォルトでバインドできないことを意味します。IntentService
は、IntentをキューとonStartCommand()
に送信するonHandleIntent()
を実装します。簡単に言えば、IntentService
を使用するために行うべきことは2つだけです。まず、コンストラクターを実装します。次に、onHandleIntent()
を実装します。他のコールバックメソッドの場合は、適切に追跡できるようにスーパーを呼び出す必要があります。
サービス:システムのバックグラウンドで実行されます。例えば、
バックグラウンドプロセス:シェフがスープを作る
IntentService:-これは連続したサービスです。(つまり)一度に多くの食品を注文しますが、サーバーはそれらの商品を1つずつ配達し、一度に配達しない場合。
このテーマについては、Tejas Lagvankarの post をご覧ください。以下は、ServiceとIntentServiceおよびその他のコンポーネントの主な違いです。
Service
は、実際にはアプリの同じスレッドで実行されます。サービスを拡張する場合、CPUブロッキング操作を実行するには、新しいスレッドを手動で生成する必要があります。
対
IntentService
はService
のサブクラスであり、スレッドを生成してそこからバックグラウンド処理を実行します(CPUブロッキング操作を行うために新しいスレッドを作成する必要はありません)。
サービス
onStartService()
による呼び出しmain(UI
)スレッドをブロックする場合がありますIntentService
Service
:メインスレッドで動作するため、数秒後にANR(Android Not Responding)が発生します。
IntentService
:Service
は、メインスレッドと対話せずに何かを行うために個別に動作する別のバックグラウンドスレッドを使用します。
インテントサービスはサービスの子です
IntentService:アプリを開いたときに多数の画像をダウンロードする場合。これは1回限りのプロセスであり、すべてがダウンロードされるとクリーンアップできます。
サービス:アプリとバックエンドの間でWeb API呼び出しを使用して通信するために常に使用されるサービス。現在のタスクが終了したとしても、数分後にはコミュニケーションをとるためにそれが必要です。