文档详情

Android移动应用开发第7章Service与后台服务.pptx

发布:2025-05-24约2.13万字共62页下载文档
文本预览下载声明

第7章Service与后台服务

Service与后台服务7.1Service简介7.2Service的类别7.3Service的创建(掌握)7.4Service的生命周期7.5LocalService(掌握)7.6RemoteService(掌握)

ServiceAndroid中一些用时较长的操作,不希望它们耽误用户的其他操作,就把它们放在后台运行。例如,已经打开了一个音乐播放器,这个时候又打开Android浏览器,歌曲播放并没有停止,而是在后台继续播放,由播放音乐的Service进行控制。类似的,网络登录、下载、文件读写操作也常作为Service进行。注:如果想在当前程序运行时播放并控制音乐,则可以使用HandleThread或AsyncTask。

ServiceService是Android系统中的一种组件,通常称为“后台服务”。Service不依赖于用户可视的UI界面,只能在后台运行。Service没有自己的线程,是在主线程中运行的。Service可以和其他组件进行交互(IPC,Inter-ProcessCommunication)。

Service运行在主线程,不能做耗时的请求或动作用途:播放音乐记录地理位置的改变监听动作优先级高于Activity

Service与后台服务7.1Service简介7.2Service的类别7.3Service的创建(掌握)7.4Service的生命周期7.5LocalService(掌握)7.6RemoteService(掌握)

Service的类型按运行地点分类:本地服务(LocalService)应用程序内部startServicestopServicestopSelfstopSelfResultbindServiceunbindService远程服务(RemoteService)多个应用程序之间定义Ibinder接口

Service的类型按运行地点分类:类别区别优点缺点应用本地服务Local依附在主进程上在同一进程内,不需要IPC或AIDL,节约资源,相应bindService方便很多。主进程被Kill后,服务便会终止音乐播放服务远程服务Remote是独立的进程在Activity所在进程被Kill的时候,该服务依然在运行,不受其他进程影响,灵活性较高。占用一定资源,使用AIDL进行IPC稍微麻烦系统服务IPC:inter-processcommunicationAIDL:AndroidInterfacedefinitionlanguage

Service的类型按运行方式分类:类别区别应用前台服务会在通知栏显示Notification,服务被终止时,Notification也会消失,音乐播放服务后台服务默认的服务即为后台服务,不会在通知栏Notification。服务被终止时,用户也看不到提示。不需要运行或终止提示的服务,如背景音乐播放、天气更新,日期同步,邮件同步等。

Service的类型按启动/终止方式分类:类别区别startService启动的服务主要用于启动一个服务执行后台任务,不进行通信停止服务使用stopServicebindService启动的服务启动的服务要进行通信停止服务使用unbindServicestartService同时也bindService启动的服务停止服务应同时使用stopService与unbindService

Service与后台服务7.1Service简介7.2Service的类别7.3Service的创建(掌握)7.4Service的生命周期7.5LocalService(掌握)7.6RemoteService(掌握)

使用service的步骤第一步:继承service类,实现自己的service。如果想要访问service中的某些值,我们通常会提供一个继承了Binder的内部类,通过onBund()方法返回给service请求。这里实际上巧妙的利用了内部类能够访问外部类属性的特点。第二步:在androidManifest.xml中进行注册。第三步:在activity中进行启动、绑定、解绑或者停止service。

Service的启动与停止startService(Intentintent):启动服务,主要用于启动一个服务执行后台任务,不进行通信。服务跟启动源没有联系得不到服务对象stopService(Intentintent):停止服务使用。bindServicebindServi

显示全部
相似文档