- 36
- 0
- 约2.08万字
- 约 47页
- 2016-10-19 发布于天津
- 举报
第5章Android服务(Service).ppt
5.1.5 Service的生命周期 每当Service被创建时会回调onCreate()方法,每次Service被启动时都会回调onStartCommand()方法,多次启动一个已有的Service组件将不会再回调onCreate()方法,但每次启动时都会回调onStartCommand()方法。 绑定服务的执行过程: 执行单击事件方法?根据Intent找到相应的Service类,并初始化该类?调用Service的onCreate()方法?调用该类的onBind()方法?调用onServiceConnected()方法。 多次单击绑定服务按钮,并不会重复执行绑定方法。一旦解绑,调用onunBind()方法,然后自动销毁。 5.2 跨进程调用Service AIDL是一种接口定义语言,用于约束两个进程间通信规则,供编译器生成代码,实现Android设备上的两个进程间通信(IPC)。 进程之间的通信信息,首先会被转换成AIDL协议消息,然后发送给对方,对方收到AIDL协议消息后再转换成相应的对象。 由于进程之间的通信信息需要双向转换,所以android采用代理类在背后实现了信息的双向转换,代理类由android编译器生成,对开发人员来说是透明的。 AIDL:Android Interface Definition Language 5.2.1 什么是AIDL服务 客户端访问Service时,Android并不是直接返回Service对象给客户端,Service只是将一个回调对象(IBinder对象)通过onBind()方法回调给客户端。 与绑定本地Service不同的是,本地Service的onBind()方法会直接把IBinder对象本身传给客户端的ServiceConnection的onServiceConnected方法的第二个参数。但远程Service的onBind()方法只是将IBinder对象的代理传给客户端的ServiceConnection的onServiceConnected方法的第二个参数。当客户端获取了远程的Service的IBinder对象的代理之后,接下来可通过该IBinder对象去回调远程Service的属性或方法。 AIDL文件创建和java借口定义相类似,但在编写AIDL文件时,需注意: 5.2.2 建立AIDL文件 1.接口名和aidl文件名相同; 2.接口和方法前不用加访问权限修饰符public,private等,也不能用final,static; 3.Aidl默认支持的类型包话java基本类型(int、long、boolean等)和(String、List、Map、CharSequence),使用这些类型时不需要import声明。对于List和Map中的元素类型必须是Aidl支持的类型。如果使用自定义类型作为参数或返回值,自定义类型必须实现Parcelable接口。 4.自定义类型和AIDL生成的其它接口类型在aidl描述文件中,应该显式import,即便在该类和定义的包在同一个包中。 5.在aidl文件中所有非Java基本类型参数必须加上in、out、inout标记,以指明参数是输入参数、输出参数还是输入输出参数。 6.Java原始类型默认的标记为in,不能为其它标记。 定义好AIDL接口之后(如Song.aidl),ADT工具会自动在gen目录下生成相应的包,并生成一个song.java接口,在该接口里包含一个Stub内部类,该内部类实现了IBender,Song两个接口,这个Stub类将会作为远Service的回调类。由于它实现了IBinder接口,因此可作为Service的onBind()方法的返回值。 package .android; interface Song{ String getName(); String getAuthor(); } 程序清单:/AIDLServer/src/iet/jxufe/cn/android/Song.aidl 5.2.2 建立AIDL文件 AIDL定义接口的源代码必须以.aidl结尾; AIDL接口中用到数据类型,除了基本类型、String、List、Map、CharSequence之外,其他类型全部都需要导包,即使它们在同一个包中也需要导包。 定义好AIDL接口之后(如Song.aidl),ADT工具会自动在gen目录下生成相应的包,并生成一个Song.java接口,在该接口里包含一个Stub内部类,该内部类实现了IBinder、Song两个接口,这个Stub类将会作为远程Service的回调类。它内部能实现一些功能。 开发客户端的第一步就是将S
您可能关注的文档
最近下载
- 人教版(2024)新教材八年级生物上册第四单元第六章第三节《神经系统支配下的运动》导学案(含答案).doc VIP
- 锅炉工职业技能鉴定试卷库.pdf VIP
- 2025教科版四年级科学下册全册教案【含反思】.pdf VIP
- 2025-2026学年小学信息技术(信息科技)五年级下册(2024)湘科版(2024)教学设计合集.docx
- 湖北省云学联盟2026年高三年级2月开学考物理试卷(含答案).pdf VIP
- 钢结构厂房监理质量评估报告.docx VIP
- 光伏资料员培训课件PPT.pptx VIP
- 2025市政工程安全风险分级管控和隐患排查治理双重预防机制建设实施指南.docx
- Nikon尼康D3500-HK使用说明书.pdf
- 智能烹饪基础知识培训课件.pptx
原创力文档

文档评论(0)