在解释这个问题以前, 先来看一个Android系统中进程的优先级(从高到低)android
因而可知, Service对于android系统来讲,杀死的优先级别是比较低的,通常不会杀死service, 这就保证了Service能够长期在后台运行.线程
另外, Service是没有界面的, 也是运行在主线程中的,因此若是要在Service中执行耗时的操做,须要新建一条线程.对象
功能:用于实现应用程序本身的一些耗时任务,好比查询升级信息,并不占用应用程序好比Activity所属线程,而是单开线程后台执行,这样用户体验比较好。接口
使用:在Service能够调用Context.startService()启动,调用Context.stopService()结束。在内部能够调用Service.stopSelf() 或 Service.stopSelfResult()来本身中止。不管调用了多少次startService(),都只需调用一次stopService()来中止。进程
功能:可被其余应用程序复用,好比天气预报服务,其余应用程序不须要再写这样的服务,调用已有的便可。事件
使用:能够定义接口并把接口暴露出来,以便其余应用进行操做。客户端创建到服务对象的链接,并经过那个链接来调用服务。调用Context.bindService()方法创建链接,并启动,以调用 Context.unbindService()关闭链接。多个客户端能够绑定至同一个服务。若是服务此时尚未加载,bindService()会先加载它。ci