以下是该方案:
我有一项服务,我想在设备启动时启动。
该服务将侦听多播数据包并向用户发送通知。
为了使服务在系统启动时开始运行,我需要定义一个接收器,用于监听包含以下操作android.intent.action.BOOT_COMPLETED
的意图,然后启动该服务。
如果我有N个应用程序,都希望该服务正在运行,并且我在所有应用程序中定义了相同的接收器,我假设N个服务将启动。
有没有办法阻止同一服务的多个实例运行?
答案 0 :(得分:0)
Android服务实际上是单例,这意味着任何时候都只会运行一个实例。
https://groups.google.com/forum/?fromgroups#!topic/android-developers/qv-z0HM5afo
根据API documentation,每次拨打startService()
都会触发onStartCommand()
事件;但是,如果服务的新实例已在运行,则不会启动它。