Android 服务类Service 的详细学习

上一篇说到了通知栏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系统内部的应用程序之间

功能:可被其他应用程序复用,比如天气预报服务,其他应用程序不需要再写这样的服务,调用已有的即可。

孤单寂寞与被遗弃感是最可怕的贫穷

Android 服务类Service 的详细学习

相关文章:

你感兴趣的文章:

标签云: