2

私は趣味のアプリケーション (目覚まし時計) を持っていますが、その中には短命のサービスがたくさんあります。これらのサービスはすべて、BroadcastReceiver内部インテントがブロードキャストされるときに開始されます。これらのサービスの多くは、アラームが発生したとき、すべてが開始されたときなど、同じインテントに反応VibrationServiceしますKlaxonServiceFlashLightService少量の作業を行う他のサービスとレシーバーもいくつかあります。過去には、すべてが順調でした。最近サービスが増えてきて、「人気」のインテントが放送される際にかなりのラグを感じるようになりました。

すべてのサービスがエクスポートされず、メイン スレッドで実行されます。

私の質問は、サービスの作成/破棄にはどれくらいの費用がかかるのですか? 1 つの「HostService」を使用してそこですべての作業を行うのは理にかなっていますか (私の場合は 4 ~ 5 つのサービスを置き換えます)。

4

1 に答える 1

2

短期間のサービスを作成する最も適切な方法は、本格的なサービスの代わりに IntentService を使用することです。これらは独自のスレッドで実行され、キューに入れられたすべてのインテントを処理すると終了します。

サービスの名前から判断すると、通知マネージャーも確認する必要があります。これにより、個別のサービスを必要とせずに、ほとんどのワークロードをプロデュースできます。

于 2013-01-27T17:13:00.553 に答える