自己写了一个小程序试了下android中的service各响应函数触发流程,总结如下:
说明:service定义与activity都位于同一应用中,startService与bindService均由同一activity发起
单独操作:
startServic->onCreate->onStartCommand
stopServic->onDestroy
bindService->onCreate->onBind->onServiceConnected
unbindServic->onUnbind->onDestroy;
连续操作:先start服务,然后bind服务,stop服务,unbind服务
startServic->onCreate->onStartCommand, bindService->onBind->onServiceConnected, stopServic, unbindServic->onUnbind->onDestroy;
先bind服务,然后start服务,然后unbind服务,然后stop服务
bindService->onCreate->onBind->onServiceConnected, startServic->onStartCommand, unbindServic->onUnbind, stopServic->onDestroy
多次startService也只需一次stopService即可触发onDestroy,但过程中会多次触发onStartCommand;
多次bindService也只需一次unbindService即可以触发onDestroy,但过程中只会触发一次onBind->onServiceConnected
测试LOG图: