Service作为Android四大组件
- Service
- Activity
- ContentProvider
- BroadcastReceiver
之一,应用非常广泛,和Activity一样,Service也有一系列的生命周期回调函数。
1.生命周期流程图:
- onCreate():
首次创建服务时,系统将调用此方法。如果服务已经运行,则不会调用此方法,该方法只调用一次。
- onStartCommand():
当另一个组件通过调用starService()请求启动服务时,系统将调用此方法。
- onDestroy():
当服务不在使用且将被销毁时,系统将调用此方法。
- onBind():
当另一个组件通过调用bindService()与服务绑定时,系统将调用此方法。
- onUnbind():
当另一个组件 通过调用unbindService()与服务解绑时,系统将调用此方法。
- onRebind():
当旧的组件与服务解绑后,另一个新的组件与服务绑定时,onUnbind()返回true时,系统将调用此方法。
2.生命周期方法
在Service的生命周期中,常用的方法有:
- 手动调用的方法:
手动调用的方法 | 作用 |
---|---|
startService() | 启动服务 |
stopService() | 关闭服务 |
bindService() | 绑定服务 |
unbindService() | 解绑服务 |
- 自动调用的方法
自动调用方法 | 作用 |
---|---|
onCreat() | 创建服务 |
onStartCommand() | 开始服务 |
onDestroy() | 销毁服务 |
onBind() | 绑定服务 |
onUnbind() | 解绑服务 |
3.生命周期的调用
- 启动Service服务
单次:startService()->onCreate()->onStartCommand()
多次:startService()->onCreate()->onStartCommand()->onStartCommand()
- 停止Service服务
stopService() —> onDestroy()
- 绑定Service服务
bindService() —> onCreate() —> onBind()
- 解绑Service服务
unbindService() —> onUnbind() —> onDestroy()
- 启动绑定Service服务
startService() —> onCreate() —> onStartCommand() —> bindService() —> onBind()
- 解绑停止Service服务
unbindService() —> onUnbind() —> stopService() —> onDestroy()
- 解绑绑定Service服务
unbindService() —> onUnbind(ture) —> bindService() —> onRebind()