Android单一流程级服务

时间:2012-05-25 18:27:40

标签: android

以下是该方案:

我有一项服务,我想在设备启动时启动。

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

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

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

有没有办法阻止同一服务的多个实例运行?

1 个答案:

答案 0 :(得分:0)

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

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

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