- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章 服务
服务的创建
服务的生命周期
服务的启动方式
服务通信
? 学习目标
? 目录
服务的创建
服务的生命周期
服务的启动方式
?点击查看本小节知识架构
服务通信
?点击查看本小节知识架构
本章小结
? 知识架构
8.3.1
start方式启动服务
bind方式启动服务
8.3.2
8.3 服务的启动方式
返回目录
? 知识架构
8.4 服务通信
返回目录
8.4.1
本地服务通信和远程服务通信
案例——音乐播放器
8.4.2
案例——远程调用支付宝
8.4.3
8.1 服务的创建
服务(Service)是Android中的四大组件之一,它能够长期在后台运行且不提供用户界面。即使用户切到另一应用程序,服务仍可以在后台运行。
8.1 服务的创建
8.1 服务的创建
服务的创建方式与创建Activity类似,只需要继承Service类,然后在清单文件中注册即可。
1、创建服务
public class MyService extends Service {
public IBinder onBind(Intent arg0) {
return null;
}
}
2、在清单文件中配置
application
…………
service android:name=cn.itcast.servicetest.MyService/
/application
8.2 服务的生命周期
与其他组件不同的是,Service不能自己主动运行,需要调用相应的方法来启动。
启动服务的方法是Context.startService()和Context.bindService()。使用不同的方法启动服务,服务的生命周期也会不同。
8.2 服务的生命周期
1、startService方式开启服务的生命周期
服务会执行onCreate() ? onStartCommand()方法,服务处于运行状态,直到自身调用stopSelf()方法或者其他组件调用stopService()方法时服务停止,最终被系统销毁。
服务会长期的在后台运行,并且服务的状态与开启者的状态没有关系。
2、bindService方式开启服务的生命周期
服务会执行onCreate() ? onBind()方法,服务处于绑定状态, 客户端通过unbindService()方法关闭连接,解除绑定时,系统将直接销毁服务。
服务与开启者的状态有关,当调用者销毁了,服务也会被销毁。
8.3 服务的启动方式
8.3.1 start方式启动服务
使用startService()方式开启服务的具体代码如下所示:
Intent intent = new Intent(this, StartService.class);
Context.startService(intent);
Context.stopService(intent);
服务也是Android中的四大组件之一,因此需要在清单文件中注册
service android:name = cn.itcast.startservice.MyService/
当程序使用startService()和stopService()启动、关闭服务时,服务与调用者之间基本不存在太多的关联,也无法与访问者进行通信、数据交互等。如果服务需要与调用者进行方法调用和数据交互时,应该使用bindService()和unbindService()启动、关闭服务。
bindService(Intent service,ServiceConnection conn, int flags)
Intent对象用于指定要启动的Service
ServiceConnection对象用于监听调用者与Service的连接状态。
flags指定绑定时是否自动创建Service(如果Service还未创建)。
8.3 服务的启动方式
8.3.2 bind方式启动服务
8.4.1 本地服务通信和远程服务通信
。
在Android系统中,服务的通信方式有两种,一种是本地服务通信,一种是远程服务通信。
本地服务通信是指应用程序内部的通信,而远程服务通信是指两个应用程序之间的通信。使用这两种方式进行通信时必须满足一个前提,就是服务必须以绑定方式开启。
8.4 服务通信
8.4.1 本地服务通信和
文档评论(0)