bindService()和BIND_AUTO_CREATE是否总是创建新的服务实例?

时间:2017-05-02 16:18:38

标签: android service

onCreate()主要活动中,我使用bindService()标记呼叫BIND_AUTO_CREATE,并在unbindService()中呼叫onDestroy()。然后我启动Activity,完成它并重新开始。

我看到服务的onCreate()onBind()onUnbind()是按顺序调用的。 当我第二次开始活动时,也会调用服务的onCreate()onBind(),但它是另一个服务实例,它还有另一个this

我希望,该服务在解除绑定后保持活跃,第二个onBind()将绑定到同一个服务。我误解了什么吗?

1 个答案:

答案 0 :(得分:2)

  

我希望,该服务在解除绑定后保持活跃状态​​,第二个onBind()将绑定到同一服务。

没有。如果出现以下情况,将销毁服务:

  • 您从每个绑定的连接取消绑定,

  • 在服务

  • 上没有调用startService()

在您的情况下,您正在解除服务绑定,并且由于没有启动任何服务,因此服务将被销毁。您的下一个bindService()调用将创建一个新实例,因为此时没有正在运行的实例。