https://developer.android.com/guide/components/services?hl=zh-cn#Lifecycle
上面的官方文档有些东西没说清楚,这里补充记录一下:
bindService返回了true,是否表示服务会启动?
bindService返回了true,只能说明AMS找到了服务定义,并创建了bind记录,当服务启动后,如果bind记录还存在,就会根据bind记录找到记录的应用进程传过来的Binder回调对象,给应用回调onServiceConnected,把服务返回的Binder提供给应用。
bindService本身并不会启动Service,只有在flags传入Context#BIND_AUTO_CREATE时,才会创建Service,否则必须使用startService启动Service。
当仅使用bindService配合Context#BIND_AUTO_CREATE启动服务,不通过startService启动服务时,被启动的Service的生命周期会和调用bindService的Context生命周期对齐,当所有通过传入BIND_AUTO_CREATE标记绑定到Service的Context都被销毁后,Service也会被销毁。