Service(一)

146 阅读2分钟

「这是我参与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的生命周期,下一篇主要介绍一下这两种状态的区别