上一篇说到了通知栏Notification,提起通知栏,不得让人想到Service以及BroadcastReceive,作为android的4大组建的2个重要成员,我们没少和它们打交道。它们可以在无形中使我们的软件和网络、数据库、系统等进行交互,之后通过UI(Notification就是一种展示方式)把结果展现在我们面前。可以说,他们是android生命体系里面的神经系统,通过反射条件让身体展现不同的状态。在整个系统中,广播接收器充当着是传输者和监听者的角色,它把系统的一点点变化都反馈上去,之后做出改变。
开发文档:
什么是服务?
service可以说是一个在后台运行的Activity,它不是一个单独的进程,它只需要应用告诉它要在后台做什么就可以了。
它要实现和用户的交互的话需要通过通知栏或则是发送广播,UI去接收显示。它的应用十分广泛,尤其是在框架层,应用更多的是对系统服务的调用。
服务有什么用
它用于处理一些不干扰用户使用的后台操作。如下载,网络获取。播放音乐,他可以通过INTENT来开启,同时也可以绑定到宿主对象(调用者例如ACTIVITY上)来使用。
概述
服务是一个应用程序组件代表应用程序执行一个长时间操作的行为,虽然不与用户交互或供应功能供其它应用程序使用。每个服务类必须有一个相应的包的AndroidManifest.xml中 <Service>声明。服务可以通过Context.startService()和Context.bindService()开始工作。它和其他的应用对象一样,在他的宿主进程的主线程中运行。
类组成
extendsContextWrapperimplementsComponentCallbacks2
java.lang.Object
android.content.Context
android.content.ContextWrapper
android.app.Service
Known Direct Subclasses
AbstractInputMethodService,AccessibilityService,DreamService,HostApduService,IntentService,MediaRouteProviderService,NotificationListenerService,OffHostApduService,PrintService,RecognitionService,RemoteViewsService,SettingInjectorService,SpellCheckerService,TextToSpeechService,VpnService,WallpaperService
Known Indirect Subclasses
InputMethodService
它继承至ContextWrapper,再上去就是Context,它的直接子类用很多,间接子类是InputMethodService,下面就随便说几个
1.InputMethodService
这个类提供了一个输入法的标准实现,一般的开发者是不会去考虑这个,输入法公司和ODM厂商则需要去考虑。
2.IntentService
它作为Service的子类,主要用于处理异步请求,防止线程的阻塞,所有的请求将在一个工作线程(HandlerThread)中处理,工作完成了,线程也就结束了。
3.MediaRouteProviderService
它主要用于设备启动和SD卡挂载时候执行多媒体文件的扫描工作。
4.NotificationListenerService
上一篇博文主要就是将通知栏(Android 通知栏Notification的整合 全面学习),这个类就是和通知栏有关,它主要用于接收来自系统调用的服务及新通知发布或删除。
5.RecognitionService
它是一个抽象服务类,如果开发者希望实现一个新的语音识别器时候,可以用到它。
服务的类型
按照使用范围分类:
1.本地服务(Local Service):用于应用程序内部
功能:用于实现应用程序自己的一些耗时任务,比如查询升级信息,并不占用应用程序比如Activity所属线程,而是单开线程后台执行,这样用户体验比较好。
使用:在Service可以调用Context.startService()启动,调用Context.stopService()结束。在内部可以调用Service.stopSelf() 或 Service.stopSelfResult()来自己停止。无论调用了多少次startService(),都只需调用一次stopService()来停止。
2.远程服务(Remote Sercie):用于android系统内部的应用程序之间
功能:可被其他应用程序复用,比如天气预报服务,其他应用程序不需要再写这样的服务,调用已有的即可。
孤单寂寞与被遗弃感是最可怕的贫穷