前言
启动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() |
|