一、service基本概念
Service(服务)是一种计算型组件,用于在后台执行一系列计算任务,主要处理一些需要在后台长期运行的任务或耗时较长的操作,无用户界面。由于Service组件工作在后台,故用户无法直接感知它的存在。
Service组件和 Activity组件略有不同,Activity组件只有一种运行模式,即Activity处于启动状,但Service组件却有两种状态:启动状态和绑定状态。
当Service组件处于启动状态时,这个时候Service内部可以做一些后台计算,并不需要和外界有直接交互。尽管Service组件是用于执行后台计算的,但它本身是运行在主线程中的,因此耗时的后台计算仍然需要在单独的线程中去完成。
当Service组件处于绑定状态时,这个时候Service内部同样可以进行后台计算,但是处于这种状态下的Service可以很方便的和外界进行通信。Service组件也可以停止,停止一个Service需要灵活的采用stopService和unBinderService两个方法才能完全的停止Service组件。
服务并不是运行在一个独立的进程当中的,而是依赖于创建服务时所在的应用程序进程。当某个应用程序进程被杀掉时,所有依赖于该进程的服务也会停止运行。这是Android中实现程序后台运行的解决方案,它非常适合用于去执行那些不需要和用户交互而且还要求长期运行的任务。
二、Service的基本用法
作为四大组件,需要在AndroidManifest.xml中的<application>节点下配置<service>。新建一个Service类子类(或继承一个已有Service的子类)。重写一些重要的回调方法
·onCreate()
当服务第一次创建时调用,用于执行服务的一些一次性配置工作,如果之前已经系统调用过onStartCommand()或onBind()了,即服务已经运行了,该方法不会再被系统调用,也就是Service的onCreate()方法在一个生命周期内只会调用一次,无论后续启动它多少次。
·onStartComman