简介
计算型组件,可以在后台执行长时间运行操作而没有用户界面的应用组件。有两启动(用于执行后台计算)和绑定(用于其他组件和Service交互)两种运行状态,
自定义Service
- onBind: Service子类必须重写该方法。若是启动状态,则不该方法只需返回null,在绑定状态的情况下则返回一个IBinder的实现类,供客户端用来与服务进行通信。
- onCreate: 首次创建服务时,系统将调用此方法来执行一次性设置程序(在调用 onStartCommand() 或onBind() 之前)。如果服务已在运行,则不会调用此方法,该方法只调用一次
- onStartCommand: 当另一个组件(如 Activity)通过调用 startService() 请求启动服务时,系统将调用此方法。一旦执行此方法,服务即会启动并可在后台无限期运行。 如果自己实现此方法,则需要在服务工作完成后,通过调用 stopSelf() 或 stopService() 来停止服务。(在绑定状态下,无需实现此方法。)。该方法有三个参数(intent,flag,startid)
- onDestory: 当服务不再使用且将被销毁时,系统将调用此方法。服务应该实现此方法来清理所有资源,如线程、注册的侦听器、接收器等,这是服务接收的最后一个调用。
两种状态
启动状态
startService开启,服务一旦被启动将在后台一直运行,即使启动服务的组件(Activity)已销毁也不受影响,除非手动调用才能停止服务, 已启动的服务通常是执行单一操作,而且不会将结果返回给调用方。