我有一个长期运行的服务,它由应用程序主要活动启动和停止,但我也是由警报更新的服务。
我相信我已经在某个地方读过您可以在任何时间只运行一个服务实例,因此我可以从活动和警报中启动服务&#39 ; Reviver?如果是这样,GC会处理旧服务实例,还是他们没有旧实例,因为第二次调用启动同一个实例?
由于
答案 0 :(得分:0)
我假设您使用的是已启动的服务,而不是绑定服务。第一次调用startService()
时,将调用“已创建”服务(即onCreate()
)。之后,只要您拨打startService()
,就会调用onStartCommand()
。
所以是的 - 服务的单个实例随时都在运行。您只需从startService()
和Activity
调用AlarmReceiver
即可,如果已创建,则会将意图传递给Service
;否则创建Service
,然后将Intent
传递给它。