十 Android Service.pptVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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

文档评论(0)

awang118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档