Service生命周期
相关函数
- onCreate()
- onStartCommand()
- onBind()
- onUnbind()
- onStop()
- onDestroy()
两条线Bind和Start线
- bindService是为了在Activity中直接调用Service中的公共函数
- startService函数的作用是通过intent传消息调用service中的私有函数
使用Bind时的生命周期
- onCreate()第一次调用bindService时候调用,多次bind只有第一次会调用
- onBind() 调用一次binService则执行一次
- onUnBind() 在调用unBindService时候执行
- onDestroy() bindServie的context不存在了或者没有已经没有绑定了,则对应Destroy函数被调用
使用startService时的生命周期
- onCreate() 第一次调用startService时候嗲用,多次start则只有第一次会调用
- onStartCommand() 每调用一次startService都会执行一次
- onStop() context调用stopService的时候调用或者在服务里面调用stopSelf时执行
- onDestroy() 调用stopService;或者调用stopSelf;onDestroy方法将会被调用,需要手动停止在Service中的线程等。
总结一下
- onCreate()函数只有第一次bindService或者startService的时候调用一次,如果既有bindService也有startService也只会调用一次
- onDestroy()函数调用条件有3个,满足其一就会被调
- bindService全部unbind
- 调用了stopService
- 调用了stopSelf