绑定服务:
用于间接调用服务里面的方法。如果调用者Activity被销毁了,服务也跟着销毁了,服务也会跟着销毁。
开启服务:
不可以调用服务里面的方法。如果调用者的Activity退出了,服务还会长期在后台运行
生命周期
①单独调用 startService() - onCreate, stopService() - onDestroy
②单独调用 bindService() - onCreate() - onbind, unbindService() - onunbind - ondestroy
服务只能被解绑一次,不能解绑多次。
混合调用
需求:既要保证服务长期在后台运行,又想去调用服务里面的方法。
技巧:1.先开启服务,2.绑定服务
多次调用只会执行startCommand(),多次绑定没有任何动作。
在onUnbind()中返回true,才能触发onRebind()。