前言

  • Service作为Android四大组件之一,应用非常广泛本文将介绍对Service进行全面介绍(基础认识、生命周期、使用和应用场景)

一、初步了解Service

android 服务进程 生命周期 安卓服务生命周期_android studio

  • Service是Android系统中的四大组件之一,它是一种长生命周期的,没有可视化界面,运行于后台的一种服务程序。
  • 定义:服务,属于Android中的计算型组件作用:提供需要在后台长期运行的服务(如复杂计算、下载等等)特点:长生命周期的、没有用户界面、在后台运行

二、生命周期

android 服务进程 生命周期 安卓服务生命周期_android_02


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();

android 服务进程 生命周期 安卓服务生命周期_android 服务进程 生命周期_03