每次触发服务时是否创建了Service
的新实例,或重新使用了实例?例如。多次调用:
context.startService(new Intent(context, MyService.class));
The docs意味着可以重复使用服务类:
如果有人拨打
Context.startService()
,系统将检索该服务(如果需要,可以创建并调用其onCreate()
方法)
但是,我无法直接在任何地方找到此问题。
答案 0 :(得分:3)
通过startService()
启动服务后,系统会认为该服务正在运行。它一直处于该状态,直到:
stopService()
stopSelf()
在运行时,对同一服务类的后续startService()
调用将转到同一个实例。
请记住,您使用的Service
子类可能会调用stopSelf()
。例如,IntentService
调用stopSelf()
,如果在调用onHandleIntent()
之后,该服务没有更多工作要做(即,没有其他人调用startService()
来发送临时的新命令。)