IntentService
とService
の違いは何ですか?IntentServiceとサービスの違いは何ですか?
答えて
要するに、サービスは、開発者がバックグラウンド操作を設定するための広範な実装であり、IntentServiceはバックグラウンドのスレッド作成とクリーンアップを処理する「ファイアアンドファー」操作に便利です。ドキュメントから
:
サービス Aサービスは、ユーザと対話しないが、より長いランニング動作を実行する、または使用する他のアプリケーションのための機能を提供するか、アプリケーションの要望を表すアプリケーション・コンポーネントです。
IntentService サービスは、(インテントとして表される)オンデマンドでの非同期リクエストを処理IntentService サービスの基本クラスです。クライアントはstartService(Intent)
コールで要求を送信します。必要に応じてサービスが開始され、ワーカースレッドを使用して各インテントが順番に処理され、作業が終了するとサービスが停止します。
は、このドキュメントを参照してください - http://developer.android.com/reference/android/app/IntentService.html
サービス:それはあなたのシステムのバックグラウンドで実行されます。例えば、
- あなたはホテルに行っている場合や、サーバー
- にスープのためのあなたの順序を与えるサーバーは、ご注文を取得し、あなたはスープがあるのか分からない
- シェフに送りますキッチンで作られたスープを作るのにどのようなプロセスが必要ですか?
- 注文が完了すると、サーバーからスープが届きます。
バックグラウンド・プロセス:シェフのスープ
IntentService作る: - あなたは、サーバーへ一度に多くの食品を注文したが、サーバーがこれらのアイテムを一つずつ実現したときに、それは連続したサービスだが...(IE)と一度にそれらをすべて届けないでください。
Service
実際にあなたのアプリの同じスレッドで実行されます。サービスを拡張するときは、CPUブロッキング操作を実行するために新しいスレッドを手動で生成する必要があります。
IntentService
対
がそこからバックグラウンドの仕事をするためのスレッド(CPUブロック操作を行うための新しいスレッドを作成する必要はありません)を生成しますService
のサブクラスです。
それはCPUブロック動作を防ぐのではなく、実行するのではないですか?私は確信していませんが – committedandroider
thats true、サービスneew新しいスレッドをCPUのブロック操作を実行する –
Service
は、サービス実装の基本クラスです。 Service
がアプリケーションのメインスレッドで実行されるため、アプリケーションのパフォーマンスが低下する可能性があります。したがって、サービスの直接のサブクラスであるIntentService
は、物事をより簡単にするために利用できます。
IntentService
は、バックグラウンドで特定のタスクを実行するために使用されます。完了すると、IntentService
のインスタンスは自動的に終了します。その使用例は、インターネットから特定のリソースをダウンロードすることです。 IntentService
は、ワーカースレッドを作成し、サービスを実行するために、そのスレッドを使用しながら
違い
Service
クラスは、アプリケーションのメインスレッドを使用しています。IntentService
は、一度に1つのインテントをonHandleIntent()
に渡すキューを作成します。したがって、マルチスレッドを実装するには、Service
クラスを直接拡張する必要があります。Service
クラスはstopSelf()
を使用して手動停止が必要です。一方、IntentService
は、実行が終了すると自動的に停止します。IntentService
は、null
を返すonBind()
を実装します。つまり、IntentService
はデフォルトではバインドできません。IntentService
は、インテントをキューに送信し、onHandleIntent()
を送信するonStartCommand()
を実装します。
簡単に言えば、IntentService
を使用する2つのことがあります。まず、コンストラクタを実装する。第二に、onHandleIntent()
を実装する。他のコールバックメソッドでは、superを呼び出して適切に追跡する必要があります。 IntentServiceは、ワーカースレッドを作成し、サービスを実行するために、そのスレッドを使用しながら
Nice Explaination。私は音楽アプリを作っています。それで、どちらがいいの?サービスまたはIntentService? –
私はあなたがサービスを使用しなければならないと思います。なぜなら、デフォルトでは、IntentServiceはアンバインドできないからです。音楽アプリを停止して音楽アプリにバインドする必要があります。すでに述べたように、IntentServiceは「開始と忘却」の方が優れています – Premier
@Premier IntentServiceはService.START_NOT_STICKYと似ていませんか?あなたの例によると、それはまた "始まりと忘れ"です。 –
違い
- サービスクラスは、アプリケーションのメインスレッドを使用しています。
- IntentServiceは、一度に1つのインテントをonHandleIntent()に渡すキューを作成します。したがって、マルチスレッドを実装するには、サービスクラスを直接拡張する必要があります。
- サービスクラスでは、stopSelf()を使用して手動で停止する必要があります。一方、インテントサービスは、インテントがキューにないときに自動的に停止します。
- IntentServiceはnullを返すonBind()を実装しています。つまり、IntentServiceはデフォルトでバインドできません。
- IntentServiceは、IntentをキューおよびonHandleIntent()に送信するonStartCommand()を実装しています。
サービスはonStartCommandも実装していませんか? –
Service
:それは数秒後にANRを(Androidは応答なし)が発生しますので、メインスレッドで動作します。
IntentService
:Service
メインスレッドとやりとりすることなく別のバックグラウンドスレッドが別の方法で処理します。
*サービス:メインスレッドで動作するため、数秒後にANR(Android Not Responding)が発生する* - サービスを数時間、数時間稼働させることができ、ANRを見たことがないので、本当です。 –
意向サービスは、サービス
IntentServiceの子である:あなたのアプリを開くの開始時に画像の束をダウンロードする場合。これは一度だけのプロセスで、すべてがダウンロードされると自分自身をきれいにすることができます。
サービス:Web APIコールを使用してアプリケーションとバックエンド間の通信に常に使用されるサービス。それは、現在のタスクを終了した場合でも、あなたはまだそれがより多くの通信UIなしで
サービス
- タスクのために、数分後の周りになりたいが、長いタスクのために使用すべきではありません。どのスレッドからトリガ
onStartService()
- で長いタスク
- 呼び出しをするために、サービス内のスレッドを使用して、 メインスレッドで
- ラン
- は
main(UI
)スレッド
IntentService
- をブロックすることがあります長いタスクは、通常、メインとの通信はありません通信は、それがハンドラによって行わまたは意向メインスレッドからトリガ
- 介し
- 呼び出しをブロードキャストされる必要がある場合読み取る別個のスレッド に
- ランを(意図はメインスレッドとワーカースレッド上で受信されるをspawedされます)
- タスクを並行して実行することはできず、複数のインテントは同じワーカースレッド上でキューに入れられます。
サービス
これは、すべてのサービスの基本クラスです。このクラスを拡張するときは、アプリケーションが実行しているすべてのアクティビティのパフォーマンスを低下させる可能性があるデフォルトでは、サービスがアプリケーションのメインスレッドを使用するため、すべてのサービスの作業を行う新しいスレッドを作成することが重要です。
IntentService
これは、すべての起動要求を1つずつ処理するためのワーカースレッドを使用してサービスのサブクラスです。これは、サービスが複数の要求を同時に処理する必要がない場合に最適なオプションです。あなたがする必要があるのは、onHandleIntent()を実装することです。これはバックグラウンド作業を行うことができるように、各開始要求のインテントを受け取ります。 IntentServiceは、ワーカースレッドを作成し、サービスを実行するために、そのスレッドを使用しながら
違い
サービスクラスは、アプリケーションのメインスレッドを使用しています。 IntentServiceは、一度に1つのインテントをonHandleIntent()に渡すキューを作成します。したがって、マルチスレッドを実装するには、サービスクラスを直接拡張する必要があります。 サービスクラスは、stopSelf()を使用して手動で停止する必要があります。一方、インテントサービスは、インテントがキューにないときに自動的に停止します。 IntentServiceは、nullを返すonBind()を実装しています。つまり、IntentServiceはデフォルトでバインドできません。 IntentServiceは、インテントをキューおよびonHandleIntent()に送信するonStartCommand()を実装しています。
この件については、Tejas Lagvankarのpostを参照してください。 以下は、ServiceとIntentServiceおよびその他のコンポーネントの主な違いです。
すばらしい表情報 –
- 1. サービスとIntentServiceの違い
- 2. WebサービスとWindowsサービスの違いは何ですか?
- 3. riaサービスのQueryとInvokeの違いは何ですか?
- 4. Windowsサービスと通常のアプリケーションの違いは何ですか?
- 5. Restful WebサービスとWSDLの違いは何ですか?
- 6. Axis2:モジュールとサービスの違いは何ですか?
- 7. Web参照とサービス参照の違いは何ですか?
- 8. マイクロサービスとWebサービスの違いは何ですか?
- 9. サービスリロードとサービス再開の違いは何ですか?
- 10. Asp.Net Web APIとWCFサービスの違いは何ですか?
- 11. Webサービスとsshの違いは何ですか?
- 12. ディスパッチャ・ビューとサービス・デザイン・パターンの違いは何ですか?
- 13. cURL + HTTPとRESTful Webサービスの違いは何ですか?
- 14. twistdプラグインとtwistedサービスの違いは何ですか?
- 15. Webサービスとwcfの主な違いは何ですか?
- 16. アンドロイド:タイムアタックとサービスの違いは何ですか?
- 17. BroadcastReceiver経由でサービスまたはIntentServiceを開始するポイントは何ですか?
- 18. 通常のWebサービスとSoapベースのWebサービスの違いは何ですか?
- 19. Android - サービスまたはIntentService?
- 20. 春の自動検出では、コンポーネントとサービスの違いは何ですか?
- 21. ロケーショントラッキングサービスの場合のサービスとIntentService
- 22. Windowsサービスでは、停止と一時停止の違いは何ですか?
- 23. Java RESTfulサービス - QueryParamとPathParamの使い方の違いは何ですか?
- 24. $と$$の違いは何ですか?
- 25. `##`と `hashCode`の違いは何ですか?
- 26. typedefとの違いは何ですか?
- 27. NodeJS:「./ ..」と「..」の違いは何ですか?
- 28. {}())と{})の違いは何ですか?
- 29. `&`と `ref`の違いは何ですか?
- 30. `==`と `is`の違いは何ですか?
http://techtej.blogspot.com.es/2011/03/android-thread-constructspart-4.html –
ここで本当に良いの比較: http://stackoverflow.com/questions/15524280/service-vs-intent-service – Moemars
上記のリンクに行ってください。本当に良いですよ...彼らのために非常に大きな感謝... –