1

这是场景:

我有一项要在设备启动时启动的服务。

该服务将侦听多播数据包并向用户发送通知。

为了让服务在系统启动时开始运行,我需要定义一个接收器来监听包含以下操作的意图android.intent.action.BOOT_COMPLETED,然后它将启动服务。

如果我有 N 个应用程序,它们都希望该服务正在运行,并且我在所有应用程序中定义了相同的接收器,我假设 N 个服务将启动。

有什么方法可以防止同一服务的多个实例运行?

4

1 回答 1

0

Android 服务实际上是单例,这意味着任何时候都只会有一个实例在运行。

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

根据API 文档,每次调用startService()都会触发onStartCommand()事件;但是,如果该服务已在运行,则不会启动该服务的新实例。

于 2012-05-25T19:08:30.650 回答