2016-05-19 1 views
1

ローカルサービスとは、のサービスを意味し、ホストアプリケーションによって接続されているのはです。 Binderサブクラスのサービスを使用することも、Messengerを使用することもできます。問題はありません。また、バックグラウンドスレッドで実行されるサービスについてのみ検討しますが、これは関係なく適用されると思います。Androidのスレッドよりも好ましいバックグラウンドローカルサービスはどのような条件ですか?

私は単純なバックグラウンドスレッドでローカルサービスの価値を理解しようとしています。私はバックグラウンドスレッドのバージョンが何らかの理由でアクティビティまたはアプリケーションのライフサイクルに結びついていることを何度も書きましたが、アプリがフォアグラウンドになっているときだけタスクを実行する必要がある場合にのみ適切です...しかし、これはどういうものか分かりません本当。バックグラウンドスレッドは、作成者コンテキストのライフサイクルと無関係のAFAIKです。彼らはまたはそのようなものはありません。

サービスでは、サービスの外部(クライアント)制御を可能にする「ライフサイクルAPI」が記述されています。たとえば、stopServiceに電話し、独自のAPIを書く代わりにService.onStopにキル動作を実装することができます。しかし、ライフサイクルはとても単純でシンプルなので、これはより多く、のように複雑ではありません。たとえば、stopServiceonStopは、単純なローカル実装では2つの異なる方法である必要はありません。

ローカルサービスが本当にスレッドよりも好ましい実際の使用例を聞いてみたいと思います。

答えて

0

最初にすべてのサービス変更killing orderプロセス。

タスク「火災と忘れ」は、すべてがかなり簡単ですが、本当の楽しみはスレッド通信にあります。通常のJavaメカニズム(パイプ、共有メモリ、ブロッキングキュー)はAndroidアプリケーションで使用できますが、ブロックする傾向があるためUIスレッドに問題があります。したがって、Androidプラットフォームは独自のヘルパーを定義しています。

「バックグラウンド」サービスは、実際にはスレッドを使用する必要がありますが、実際のバックグラウンドではメインスレッドから開始されます。

関連する問題