前言
启动Service的方法有两种 StartService 和 bindService,但是在它们调用之后,再调用stopService和unbindService时,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() |
|