「这是我参与2022首次更文挑战的第24天,活动详情查看:2022首次更文挑战」
一、Service作用
Service是Android系统的四大组件(Activity、Service、BroadcastReceiver、ContentProvider)
Service 可以长期在后台运行,可以不提供UI。所以Service经常用来处理一些耗时,或者需要长时间执行的一些操作。服务可由其他应用组件启动(startService),即使启动Service的应用程序被销毁,其启动的Service也可以在后台正常运行。或组件绑定到服务(bindService),当某个应用程序进程被杀掉时,依赖于该进程的服务也会停止运行
一、Service生命周期
1. Start Service生命周期
还是先来看张图
以StartService启动,生命周期是:onCreate()->onStartCommand()->...->onDestroy,我们来分析一下每个方法代表的含义
- onCreate():是第一个被执行的方法,可以做一些初始化操作,并且只会被执行一次
- onStartCommand():调用startService()启动服务后,将会执行该方法。服务会启动并在后台无限期运行(如果实现此方法,需要通过调用stopSelf()或stopService()来停止服务)
1. bind Service生命周期
我们来看看bind Service的生命周期图
以bindService启动,生命周期为:onCreate()->onBind->...->onUnbind()->onDestroy()
- onBind():调用bindService()绑定服务后,会执行该方法。在该方法的实现中,必须返回IBinder,使客户端用来与服务进行通信
- onUnbind():当所有绑定的客户端解除绑定时,系统将会调用此方法。
- onDestory():当服务不再使用且将被销毁时,系统将调用此方法(此方法可以用来清理所有资源)
bindService绑定Service调用者会和Service绑定在一起,调用者退出的时候,Service就会调用onUnbind()退出
三、总结
这篇算Service的初级,只是简单介绍了启动/绑定两种状态下Service的生命周期,下一篇主要介绍一下这两种状态的区别