Android的Service有两种启动方法,生命周期也有所差异:
一,通过startService()启动:
生命周期为:startService()——》onCreate()——》onStartCommand()——》Service Running——》stopService()——》OnDestory()——》Service Stop。
其中,停止startService()和stopService()由客户调用(通常为Activity),且多次调用startService()时onCreate()函数只会调用一次,此后由startService()启动的同一个Service不执行OnCreate()函数,直接跳到下一阶段的OnStartCommand()。
二,通过bindService()启动
生命周期为:bindService()——》onCreate()——》onBind()——》Service Running——》onUnbind()——》OnDestory()——》Service Stop。
其中,bindService()由客户调用(通常为Activity),多个客户绑定同一个Service时也只会调用一次OnCreate(),一个Service与所有客户解除绑定之后系统会销毁该Service。