作为四大组件之一,与Activity类似, Service也有 生命周期,即从开始到结束所经历的生命周期方法调用。(不过要简单的多)
Service有创建,开始,绑定,解绑,销毁等阶段,对应的有相应的生命周期方法。
1. 不同启动方式下的生命周期
不同的启动方式对应了不同的生命周期方法。
1.1 startService(非绑定式)
- 启动阶段
当启动者(Activity)调用 startService 后,Service会执行:
onCreate(): 只会在首次创建执行一次
onStartCommand(): 每次 startService 都会执行
此时,Service已经启动。
- 结束阶段
如果要结束Service,有两种方式。
1. 启动者调用stopService
2. service内部调用stopSelf
结束时,会执行生命周期方法:
onDestroy(): 服务销毁前的最后一个方法,可以做一些释放资源等收尾工作。
- 总结
一个完整的非绑定式Service的生命周期方法调用过程是:
onCreate --> onStartCommand --> onDestroy
1.2 bindService (绑定式)
- 启动阶段
当启动者(Activity)调用 bindService 后,Service会执行:
onCreate(): 只会在首次创建执行一次
onBind(): 也是只会在首次绑定时执行一次,再次调用 bindService 也不会执行onBind了
此时,Service已经启动并绑定。
- 结束阶段
结束Service,也有两种方式:
1. 自动结束:当启动者销毁时(Activity onDestroy),会自动解绑Service。当没有绑定者时,该Service会销毁
2. 主动结束:启动者主动调用unbindService方法,解绑Service。当没有绑定者时,该Service会销毁
Service解绑并销毁,会依次执行:
onUnbind(): Service解除绑定
onDestroy(): Service销毁
- 总结
一个完整的非绑定式Service的生命周期方法调用过程是:
onCreate --> onBind --> onUnbind --> onDestroy
以上就是 Android四大组件之Service的基本内容了,如果文章对你有用,欢迎支持哦,谢谢!