Service启动与销毁时的生命周期探究

前言

启动Service的方法有两种 StartServicebindService,但是在它们调用之后,再调用stopServiceunbindService时,service会表现为调用不同的生命周期。我们在对Service进行插件化时,如果需要模拟更真实的Service的生命周期,需要梳理清楚其调用时机与调用关系(不考虑onStart函数)

启动服务

情况1

依次调用方法 生命周期表现
startService onCreate() onStartCommon()
startService onStartCommon()

情况2

依次调用方法 生命周期表现
bindService onCreate() onBind()
bindService 无生命周期回调

情况3

依次调用方法 生命周期表现
startService onCreate() onStartCommon()
bindService onBind()

情况4

依次调用方法 生命周期表现
bindService onCreate() onBind()
startService onStartCommon()

销毁服务

情况1

依次调用方法 生命周期表现
bindService onCreate() onBind()
stopService 无回调
startService onStartCommon()
stopService 无回调
unbindService onUnbind() onDestroy()

情况2

依次调用方法 生命周期表现
bindService onCreate() onBind()
stopService 无回调
startService onStartCommon()
unbindService onUnbind()
stopService onDestroy()

你可能感兴趣的:(Android,android)