- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android开发四大组件---Service详解
service可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务嘛,总是藏在后头的。
Service是在一段不定的时间运行在后台,不和用户交互应用组件。每个Service必须在manifest中 通过service来声明。可以通过contect.startservice和contect.bindserverice来启动。
Service和其他的应用组件一样,运行在进程的主线程中。这就是说如果service需要很多耗时或者阻塞的操作,需要在其子线程中实现。
service的两种模式(startService()/bindService()不是完全分离的):
本地服务 Local Service 用于应用程序内部。
它可以启动并运行,直至有人停止了它或它自己停止。在这种方式下,它以调用Context.startService()启动,而以调用Context.stopService()结束。它可以调用Service.stopSelf() 或 Service.stopSelfResult()来自己停止。不论调用了多少次startService()方法,你只需要调用一次stopService()来停止服务。
用于实现应用程序自己的一些耗时任务,比如查询升级信息,并不占用应用程序比如Activity所属线程,而是单开线程后台执行,这样用户体验比较好。
远程服务 Remote Service 用于android系统内部的应用程序之间。
它可以通过自己定义并暴露出来的接口进行程序操作。客户端建立一个到服务对象的连接,并通过那个连接来调用服务。连接以调用Context.bindService()方法建立,以调用 Context.unbindService()关闭。多个客户端可以绑定至同一个服务。如果服务此时还没有加载,bindService()会先加载它。
可被其他应用程序复用,比如天气预报服务,其他应用程序不需要再写这样的服务,调用已有的即可。
生命周期
使用context.startService() 启动Service是会会经历:
context.startService() -onCreate()- onStart()-Service running
context.stopService() | -onDestroy() -Service stop
如果Service还没有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次。
stopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。
所以调用startService的生命周期为:onCreate -- onStart(可多次调用) -- onDestroy
使用使用context.bindService()启动Service会经历:
context.bindService()-onCreate()-onBind()-Service running
onUnbind() - onDestroy() -Service stop
onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。这个时候把调用者(Context,例如Activity)会和Service绑定在一起,Context退出了,Srevice就会调用onUnbind-onDestroy相应退出。
所以调用bindService的生命周期为:onCreate -- onBind(只一次,不可多次绑定) -- onUnbind -- onDestory。
在Service每一次的开启关闭过程中,只有onStart可被多次调用(通过多次startService调用),其他onCreate,onBind,onUnbind,onDestory在一个生命周期中只能被调用一次。
而启动service,根据onStartCommand的返回值不同,有两个附加的模式:
1. START_STICKY 用于显示启动和停止service。
2. START_NOT_STICKY或
您可能关注的文档
- 勿删:胡永进theHistoryofEnglishEducationinChina.ppt
- 中国地域民居建筑之徽派民居.ppt
- 中国.益阳.皇家湖国际旅游度假区简介.ppt
- 土地复垦条例解读1100723版.ppt
- 双胎、畸形,颜面、消化、呼吸系统发生.ppt
- 8交通工具造型毕业设计外文翻译.doc
- 2010计量经济学复习要点摘录整理.doc
- 2013年马克思主义基本原理概论复习重点.doc
- 21世纪课堂评价结业测试范例.doc
- 1106030508当代大学生消费观念调查报告.doc
- 考点解析-人教版八年级上册物理物态变化《升华和凝华》达标测试练习题(详解).docx
- 2024-2025安徽合肥蜀山区高一(上)期中数学试卷【答案版】.pdf
- 防灾减灾救灾课件ppt.pptx
- 考点解析-人教版八年级上册物理物态变化《升华和凝华》综合训练试卷(含答案详解版).docx
- 考点解析-人教版八年级上册物理物态变化《升华和凝华》达标测试试卷(含答案解析).docx
- 中班社会活动教案设计范本.docx
- 考点解析-人教版八年级上册物理物态变化《升华和凝华》综合训练练习题.docx
- 2024-2025安徽合肥一中联考高一(上)期中数学试卷【答案版】.pdf
- 考点解析-人教版八年级上册物理物态变化《升华和凝华》综合练习试题.docx
- 考点解析-人教版八年级上册物理物态变化《升华和凝华》综合练习练习题(含答案详解).docx
文档评论(0)