前言
- Service作为Android四大组件之一,应用非常广泛本文将介绍对Service进行全面介绍(基础认识、生命周期、使用和应用场景)
一、初步了解Service
- Service是Android系统中的四大组件之一,它是一种长生命周期的,没有可视化界面,运行于后台的一种服务程序。
- 定义:服务,属于Android中的计算型组件作用:提供需要在后台长期运行的服务(如复杂计算、下载等等)特点:长生命周期的、没有用户界面、在后台运行
二、生命周期
Service的生命周期没有Activity那么复杂。
1.startService / stopService
生命周期顺序:onCreate- onStartCommand- onDestroy
OnCreate():在服务启动时执行,只执行一次。
系统在service第一次创建时执行此方法,来执行只运行一次的初始化工作。如果service已经运行,这个方法不会被调用。
onStartCommand()
每次客户端调用startService()方法启动该Service都会回调该方法(多次调用)。一旦这个方法执行,service就启动并且在后台长期运行。通过调用stopSelf()或stopService()来停止服务。
OnDestory()
系统在service不再被使用并要销毁时调用此方法(一次调用)。service应在此方法中释放资源,比如线程,已注册的侦听器,接收器等等.这是service收到的最后一个调用。
2.bindService / unbindService
生命周期顺序:onCreate- onBind- onUnBind- onDestroy
同样首先是OnCreate(),接着是
OnBind()
当组件调用bindService()想要绑定到service时(比如想要执行进程间通讯)系统调用此方法(一次调用,一旦绑定后,下次再调用bindService()不会回调该方法)。在你的实现中,你必须提供一个返回一个IBinder来以使客户端能够使用它与service通讯,你必须总是实现这个方法,但是如果你不允许绑定,那么你应返回null。
OnUnbind()
当前组件调用unbindService(),想要解除与service的绑定时系统调用此方法(一次调用,一旦解除绑定后,下次再调用unbindService()会抛出异常)。
最后是OnDestory() :停止服务时执行。
开启和停止服务的类:
- 启动服务的方法,startService();
- 停止服务的方法,stopService();