手机平台应用开发第八章服务

上传人:仙*** 文档编号:46291601 上传时间:2021-12-11 格式:PPT 页数:18 大小:1.49MB
收藏 版权申诉 举报 下载
手机平台应用开发第八章服务_第1页
第1页 / 共18页
手机平台应用开发第八章服务_第2页
第2页 / 共18页
手机平台应用开发第八章服务_第3页
第3页 / 共18页
资源描述:

《手机平台应用开发第八章服务》由会员分享,可在线阅读,更多相关《手机平台应用开发第八章服务(18页珍藏版)》请在装配图网上搜索。

1、第八章 服务服务的创建服务的生命周期服务的启动方式服务通信 学习目标重点了解掌握2服务的生命周期3服务的启动方式服务的创建 服务通信1 目录服务的创建8.18.1服务的生命周期 8.28.2服务的启动方式8.38.3点击查看本小节知识架构服务通信8.48.4点击查看本小节知识架构本章小结 8.58.5 知识架构8.3.1start方式启动服务bind方式启动服务8.3.28.3 服务的启动方式返回目录 知识架构8.4 服务通信返回目录8.4.1本地服务通信和远程服务通信案例音乐播放器8.4.2案例远程调用支付宝8.4.3什么是服务?什么是服务?8.1 服务的创建服务(Service)是Andr

2、oid中的四大组件之一,它能够长期在后台运行且不提供用户界面。即使用户切到另一应用程序,服务仍可以在后台运行。 8.1 服务的创建8.1 服务的创建 服务的创建方式与创建Activity类似,只需要继承Service类,然后在清单文件中注册即可。 1、创建服务、创建服务public class MyService extends Service public IBinder onBind(Intent arg0) return null; 2、在清单文件中配置、在清单文件中配置 8.2 服务的生命周期 与其他组件不同的是,Service不能自己主动运行,需要调用相应的方法来启动。 启动服务的方

3、法是Context.startService()和Context.bindService()。使用不同的方法启动服务,服务的生命周期也会不同。 8.2 服务的生命周期 1、startService方式开启服务的生命周期方式开启服务的生命周期 服务会执行onCreate() onStartCommand()方法,服务处于运行状态,直到自身调用stopSelf()方法或者其他组件调用stopService()方法时服务停止,最终被系统销毁。 服务会长期长期的在后台后台运行运行,并且服务的状态与开启者的状态没有关系。 2、bindService方式开启服务的生命周期方式开启服务的生命周期服务会执行o

4、nCreate() onBind()方法,服务处于绑定状态, 客户端通过unbindService()方法关闭连接,解除绑定时,系统将直接销毁服务。 服务与开启者的状态有关与开启者的状态有关,当调用者销毁了,服务也会被销毁。8.3 服务的启动方式 8.3.1 start方式启动服务方式启动服务 使用startService()方式开启服务的具体代码如下所示: Intent intent = new Intent(this, StartService.class); Context.startService(intent); Context.stopService(intent); 服务也是An

5、droid中的四大组件之一,因此需要在清单文件中注册 当程序使用startService()和stopService()启动、关闭服务时,服务与调用者之间基本不存在太多的关联,也无法与访问者进行通信、数据交互等。如果服务需要与调用者进行方法调用和数据交互数据交互时,应该使用bindService()和unbindService()启动、关闭服务。 bindService(Intent service,ServiceConnection conn, int flags) Intent对象用于指定要启动的Service ServiceConnection对象用于监听调用者与Service的连接状态

6、。 flags指定绑定时是否自动创建Service(如果Service还未创建)。 8.3 服务的启动方式 8.3.2 bind方式启动服务方式启动服务 8.4.1 本地服务通信和远程服务通信本地服务通信和远程服务通信。 在Android系统中,服务的通信方式通信方式有两种,一种是本地本地服务通信,一种是远程远程服务通信。 本地服务通信是指应用程序内部的通信,而远程服务通信是指两个应用程序之间的通信。使用这两种方式进行通信时必须满足一个前提,就是服务必须以绑定方式开启绑定方式开启。 8.4 服务通信 8.4.1 本地服务通信和远程服务通信本地服务通信和远程服务通信。 1、本地服务通信、本地服务

7、通信 在进行本地服务通信时,可以使用Service类提供的IBinder onBind(Intent intent)方法,该方法返回的IBinder对象会作为参数传递给ServiceConnection类中onServiceConnected(ComponentName name,IBinder service)方法,这样访问者就可以通过IBinder对象与Service进行通信。 8.4 服务通信 8.4.1 本地服务通信和远程服务通信本地服务通信和远程服务通信。 2、远程服务通信、远程服务通信 远程服务通信是通过AIDL(Android Interface Definition Langu

8、age)实现的,它是一种接口定义语言(Interface Definition Language),其语法格式非常简单,与Java中定义接口很相似。 package cn.itcast.service;interface IService String getName(); int getPrice(); 定义好AIDL接口之后,接着需要在应用程序中创建Service的子类。该Service的onBind()方法所返回的IBinder对象应该是ADT所生成的IService.Stub的子类。8.4 服务通信 8.4.2 案例案例音乐播放器音乐播放器。8.4 服务通信 在生活中经常会用到服务,为了让大家更好的理解服务通信,接下来通过一个音乐播放器的案例来演示如何使用服务进行通信。 8.4.3 案例案例远程调用支付宝远程调用支付宝。8.4 服务通信 在日常生活中,经常会用到支付宝,例如使用支付宝购买游戏中的付费道具。其中,点击打开支付宝付费的过程就使用了远程服务。接下来通过模拟调用支付宝的案例来对远程服务的绑定与使用进行讲解。8.5 本章小结本章主要讲解了Android中的服务,首先讲解了如何创建服务、服务的生命周期,然后讲解了服务的两种开启模式,最后讲解了使用服务在程序中进行通信,并通过调用支付宝的案例演示了服务在不同程序见的通信。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!