1. 服务和调用者的关联关系
startService()方法启用服务,服务与调用者之间没有关连,调用者退出了,服务仍然运行。
bindService()方法启用服务,顾名思义,调用者与服务绑定(bind)在一起,调用者一旦退出,服务也就终止。
2. 生命周期方法异同点
startService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onStart()方法。如果调用
startService()方法前服务已经被创建,多次调用startService()方法并不会导致多次创建服务,但会多次调用onStart()方法。采用
startService()方法启动的服务,只能调用Context.stopService()方法结束服务,服务结束时会调用onDestroy()方法。
bindService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onBind()方法。这个时候调用者和服
务绑定在一起,调用者退出了,系统就会先调用服务的onUnbind()方法,接着调用onDestroy()方法。如果调用bindService()方法前服
务已经被绑定,多次调用bindService()方法并不会导致多次创建服务及绑定(也就是说onCreate()和onBind()方法并不会被多次调用)。
如果调用者希望与正在绑定的服务解除绑定,可以调用unbindService()方法,调用该方法也会导致系统调用服务的onUnbind()--
>onDestroy()方法。