Android Service (服务)
经过前两章节的学习,我们知道了启动 Service 有两种方式 startService() 和 bindService()
其实,还可以先调用 startService() 然后再 bindService() 的
startService() 启动 Service 后 bindService() 绑定
如果 Service 已经由某个客户端通过 startService() 启动,接下来由其它客户端
再调用 bindService() 绑定到该 Service 后调用 unbindService() 解除绑定,最后在
调用 bindService() 绑定到 Service 的话,此时所触发的生命周期方法如下
onCreate() -> onStartCommand() -> onBind() -> onUnbind() -> onRebind()
前提是 onUnbind() 方法返回 true
或许部分读者有疑惑了,调用了 unbindService 后 Service 不是应该调用 onDistory() 方法么
这是因为这个 Service 是由我们的 startService() 来启动的
,所以调用 onUnbind() 方法取消绑定,Service 也是不会终止的
假如我们使用 bindService() 来绑定一个已启动的 Service, 注意是已经启动的 Service
系统只是将 Service 的内部 IBinder 对象传递给 Activity ,并不会将 Service 的生命周期
与 Activity 绑定,因此调用 unBindService() 方法取消绑定时,Service 也不会被销毁