一.服务介绍
Service是Android程序的四个基本组件之一,与Activity一样是Context的子类,但没有UI界面,它是在后台运行的组件。
Service是一种在Android上后台运行程序的解决方案,非常适合执行需要长期运行的任务,无需与用户交互。 缺省情况下,Service不在多线程中运行,也不在独立进程中运行。 此外,由于UI线程也将执行,因此除非Service创建一个子线程来完成耗时的操作,否则请勿在Service上执行耗时的操作。
二.服务生命周期
1.startService/stopService
生命周期顺序: oncreate-onstart command-on destroy
OnCreate () )
此方法在首次创建服务时执行,以执行仅执行一次的初始化任务。 如果服务已经在运行,则不调用此方法。
onStartCommand (
每次客户端调用startService ()方法时,每次启动Service时都会回调该方法。 此方法运行后,服务将启动并在后台长期运行。 调用stopSelf (或stopService )停止服务。
OnDestory () )
当服务不再使用并被丢弃时,将调用此方法。 service必须使用此方法释放线程、注册的侦听器和接收器等资源。 这是service收到的最后一个调用。
2.bindService/unbindService
生命周期顺序: oncreate-on bind-on unbind-on destroy
首先是OnCreate (),然后是
OnBind () )
当组件尝试通过调用bindService ()绑定到service (例如,尝试执行进程间通信)时,系统将调用此方法。 一旦被调用并绑定,下次调用bindService )时,不会回调该方法。 在您的实现中,必须返回IBinder,以便客户端可以使用它与服务进行通信。 必须始终实现此方法,但如果不允许绑定,则必须返回null。
OnUnbind () )
当当前组件调用unbindService ()并希望解除与service的绑定时,系统将调用此方法(一次调用,解除绑定,然后解除绑定)
最后是OnDestory () )。
注意:在bindService中启动的服务的生命周期取决于启动的上下文。
总结
以上是这篇文章的全部内容。 希望这篇文章的内容对大家的学习和工作有一定的参考学习价值。 感谢编剧的支持。 有关详细信息,请参阅以下相关链接