- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
项目八Service服务学习目标了解Service的特点掌握Service的启动方式掌握Service的两种类型:本地服务和远程服务情景导入日常生活通过手机播放音频来学习、工作和娱乐已经成为大多数人采取的主要途径,本项目以手机播放器为业务背景,通过Service组件技术,实现播放器运行过程中的核心功能:播放、暂停、重播、停止等。任务描述功能描述本任务将设计一款音乐播放器程序。使用线性布局设计音乐播放器主界面初始化进度条的长度,获取音乐文件的长度点击“播放”按钮,播放音乐并且更新进度条进度点击“暂停”按钮,暂停播放音乐并且暂停更新进度条点击“重播”按钮,音乐重新开始播放并且更新进度条进度点击“停止”按钮,音乐停止播放并且进度条停止更新【基本框架】基本框架如图8.1所示,将框架图转换成的效果如图8.2所示。任务描述任务技能技能点1Service概述1Service简介Service是可以在后台执行长时间操作而不使用户界面的应用组件,与Android四大组件中的Activity最相似,代表着可执行程序。Service有自己的生命周期,按运行类别分类可分为前台Service与后台Service两种。任务技能前台Service和后台Service最大的区别在于前台Service会在系统的状态栏显示一个一直运行的图标。当下拉状态栏后会看到更为详细的信息,类似于通知。有些项目要实现Service在后台更新数据的同时,还要在状态栏显示图标和新的信息的时候必须使用前台Service了,前台Service应用,如图8.3所示。任务技能任务技能2Service方法说明Service有自己的生命周期,经历了创建到销毁的过程,Service的有两种启动方式:startService()和bindService()。Service生命周期如图8.4所示。Service生命周期相关方法说明如表8.1所示。任务技能任务技能任务技能3Service实现虽然Service在后台运行,但是Service后端的数据还是要用户可见的,最终还是要呈现在前端Activity上的,因此在启动Service时,系统会重新开启一个新的进程。当想获取启动的Service实例时,可以用到bindService()和onBindService()方法。在这两种方法中分别执行了Service中的IBinder()和onUnbind()方法。接下来新建一个Service,命名为Service.java。任务技能技能点2服务通信1本地服务通信本地服务通信是最常用的后台Service,用于实现应用程序内部的一些耗时任务,比如查询升级信息,并不占用应用程序比如Activity所属线程,而是单开线程后台执行。Service与访问者之间无法进行通信以及数据交换,若Service和访问者之间要进行通信,就调用bindService()和unBindService()这两个方法来启动或关闭Service。Context的bindService()方法的完整方法为bindService(Intentservice,ServiceConnectionconn,intflags),Context的bindService()方法参数说明如表8.2所示。任务技能注意:当调用者主动通过unBindService()方法断开与Service的连接时,ServiceConnection对象的onServiceDisconnected(ComponentNamename)方法并不会被调用。使用startService()启动服务后,要使用stopService()停止服务。同时使用startService()与bindService()要注意,需要unbindService()与stopService()同时调用,才能终止Service。任务技能2远程服务通信远程服务是一个独立的进程,它不受其它进程的影响,能为其它应用程序提供可用的接口—进程间通信IPC(Inter-ProcessCommunication),Android提供了AIDL(AndroidInterfaceDefinitionLanguage,接口描述语言)工具来帮助进程间接口的建立。远程服务通信适用于为其它应用程序提供公共服务的Service,这种Service就是系统常驻Service。当创建远程服务时,首先要通过AIDL文件定义服务(Service)向客户端(Client)提供的接口,在对应的目录下添加一个后缀为.aidl的文件,IMyAidllnterface.aidl文件内容如下所示。
您可能关注的文档
- 基于工业互联网的SSM项目实战-物料订单管理系统CORE-01.pptx
- 基于工业互联网的SSM项目实战-物料订单管理系统CORE-02.pptx
- 基于工业互联网的SSM项目实战-物料订单管理系统CORE-03.pptx
- 基于工业互联网的SSM项目实战-物料订单管理系统CORE-04.pptx
- 基于工业互联网的SSM项目实战-物料订单管理系统CORE-05.pptx
- 基于工业互联网的SSM项目实战-物料订单管理系统CORE-06.pptx
- 基于工业互联网的SSM项目实战-物料订单管理系统CORE-07.pptx
- 基于工业互联网的SSM项目实战-物料订单管理系统CORE-08.pptx
- 《日汉对照简明日本史》慕课资料第2章练习.doc
- 《日汉对照简明日本史》慕课资料第3章练习.doc
文档评论(0)