以下是场景:
我有一个要在设备启动时启动的服务。
该服务将侦听多播分组并向用户发送通知。
为了让服务在系统引导时开始运行,我需要定义一个接收器来侦听包含以下操作android.intent.action.BOOT_COMPLETED的意图,然后该接收器将启动服务。
如果我有N个应用程序,所有这些应用程序都期望该服务正在运行,并且我在所有应用程序中定义了相同的接收器,我假设将启动N个服务。
有没有办法防止同一服务的多个实例运行?
发布于 2012-05-26 03:08:31
Android服务实际上是单例的,这意味着任何时候都只有一个实例在运行。
https://groups.google.com/forum/?fromgroups#!topic/android-developers/qv-z0HM5afo
根据API documentation,每次调用startService()都会触发onStartCommand()事件;但是,如果该服务已经在运行,则不会启动该服务的新实例。
https://stackoverflow.com/questions/10759621
复制相似问题