1

シナリオは次のとおりです。

デバイスの起動時に開始したいサービスがあります。

サービスはマルチキャストパケットをリッスンし、ユーザーに通知を送信します。

システムの起動時にサービスの実行を開始するには、次のアクションを含むインテントをリッスンするレシーバーを定義する必要がありますandroid.intent.action.BOOT_COMPLETED。これにより、サービスが開始されます。

N個のアプリケーションがあり、そのすべてがサービスの実行を想定していて、すべてのアプリケーションで同じレシーバーを定義している場合、N個のサービスが起動すると想定します。

同じサービスの複数のインスタンスが実行されないようにする方法はありますか?

4

1 に答える 1

0

Android サービスは実際にはシングルトンです。つまり、常に 1 つのインスタンスしか実行されません。

https://groups.google.com/forum/?fromgroups#!topic/android-developers/qv-z0HM5afo

API ドキュメントによると、を呼び出すたびにイベントstartService()がトリガーされます。onStartCommand()ただし、サービスが既に実行されている場合、サービスの新しいインスタンスは開始されません。

于 2012-05-25T19:08:30.650 に答える