- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 1、如果调用bindService()方法前服务已经被绑定,多次调用bindService()方法并不会导致多次创建服务及绑定(也就是说onCreate()和onBind()方法并不会被多次调用)。 2、如果访问者希望与正在绑定的服务解除绑定,可以调用unbindService()方法,调用该方法也会导致系统调用服务的onUnbind()--onDestroy()方法。 * 第一个参数,就是上面的用于与服务通讯的 Intent BIND_AUTO_CREATE 值为1,表示绑定此服务之后,自动创建此服务 第二个参数,我们只需要关注如何构建这个参数使目标服务可以为我们服务 * 访问者是通过 IBinder 的实例对象来与 Sercice 交互的,因此让访问者可以直接调用 IBinder 实例的某个方法来达到目的是最佳的 * 该Service将会一直在后台运行,而不管对应程序的Activity是否在运行,直到被调用stopService,或自身的stopSelf方法。当然如果系统资源不足,android系统也可能结束服务。 * onStart方法始终不会被调用 当连接建立之后,Service将会一直运行,除非调用Context.unbindService 断开连接或者之前调用bindService 的 Context 不存在了(如Activity被finish的时候),系统将会自动停止Service,对应onDestroy将被调用。 九 Android Service组件 主要内容 Service基本概念 创建一个Service 启动和停止Service 绑定一个已存在的Service Service基本概念 Service是什么? 是android?系统中的一种组件。 是一种长生命周期的、没有用户界面的服务程序。 只能后台运行,并且可以和其他组件进行交互,如可以发送Intent以及启动系统通知等。 Service不是什么? Service不是一个单独进程。 Service不是一个线程。 创建一个Service 创建方法:定义一个类,集成Service 生命周期内的相关方法: onBind(Intent intent):必须实现的一个方法,返回一个绑定的接口给Service。 onCreate():当Service第一次被创建时,由系统调用。 onStart():当通过startService方法启动Service时,该方法被调用。 onDestory():当Service不再使用,系统调用该方法,如调用stopService(),该方法被调用。 实例1:创建一个Service,在activity启动和停止,在后台打印相关方法调用信息。(工程名:Service) 步骤: 创建一个Service,起名为MyService 在MyService中的onCreate(), onStart, onDestroy中打印函数调用信息。如System.out.println(“servie onCreate”) 创建调用者,起名为MainActivity,布局”启动Service”和”关闭Service“按钮,并在触发事件函数中添加相关代码 在Mainfest.xml文件中注册创建的Service 绑定一个已存在的Service 采用Context.bindService()方法启动服务。 在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onBind()方法,这个时候访问者和服务绑定在一起 。 如果访问者要与服务进行通信,那么,onBind()方法必须返回Ibinder对象。 如果访问者退出了,系统就会先调用服务的onUnbind()方法,接着调用onDestroy()方法。 实例2:根据学号查询学生姓名。(工程名:BindService) 实例目标:创建一个Service,提供一个方法让访问者直接可以调用。如getStudentById(id) 绑定Service. Intent intent = new Intent(MainActivity.this, StudentService.class); bindService(intent, conn, BIND_AUTO_CREATE); 构建建参数conn使目标服务可以为我们服务 。 conn是ServiceConnection类型的对象, ServiceConnection是个接口,需要我们实现两个方法: onServiceConnected(ComponentName name, IBinder service) 这个方法是与服务类直接发生关系的关键 。“IBinder service” 就是 Servi
您可能关注的文档
- 诗歌鉴赏-评价作品思想和作者观点.ppt
- 诗歌鉴赏四:评价诗歌的思想内容和作者的观点态度讲稿.ppt
- 施工安全作业票填写标准与执行程序.ppt
- 施工动火安全检查报告.ppt
- 施耐德PLC讲座第07章 IEC语言:梯形图.ppt
- 十、互连和IO-1.ppt
- 十二备份与恢复简介.ppt
- 十二烷基二甲基苄基氯化铵性能及.ppt
- 十二章和十三章物理总结.ppt
- 十六种事故人.ppt
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)