Service 生命同期
startService 和bindService 区别
startService: onCreate -> onStartCommand -> onDestory ,在多次调用startService的时候,onCreate不重复执行,但是onStartCommand会执行。startService调用了这后,会一直存在,直到其调用了stopService。
bindService : onCreate -> onBind -> onUnbind -> onDestory,多次调用bindService,onCreate及onBind都只执行一次。它生命周期跟随其调用者,调用者释放的时候,必须对该Service解绑,当所有绑定全部取消后,系统即会销毁该服务。 bindService 的方式通过onServiceConnected()方法,获取到Service对象,通过该对象可以直接操作到Service内部的方法,从而实现调用者与Service之间的交互。
startService & stopService的生命周期
1、单独使用startService & stopService
2、单独使用bindService & unbindService
3、startService与bindService混合使用
使用场景:在activity中要得到service对象进而能调用对象的方法,但同时又不希望activity finish的时候service也被destroy了,startService和bindService混合使用就派上用场了。
参考:
startService和bindService的区别,生命周期以及使用场景
【Android】startService和bindService混合使用总结