网站大量收购闲置独家精品文档,联系QQ:2885784924

第7章 Android服务.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 Android服务

第7章 Android服务 课程安排 Service概述 Service生命周期 启动与停止Service 活动和服务进行通信 Notification通知 案例分析 Service概念及用途 服务是运行在后台的一段代码。 不是进程,也不是线程。 可以运行在它自己的进程,也可以运行在其他应用程序进程的上下文(context)里面,这取决于自身的需要。 Android中的服务,它与Activity不同,它是不能与用户交互的,不能自己启动的,运行在后台的程序。 Service概念及用途 媒体播放器的服务,当用户退出媒体选择用户界面,仍然希望音乐依然可以继续播放,这就是由服务(service)来保证当用户界面关闭时音乐继续播放的。 比如当我们一个应用的数据是通过网络获取的,不同时间的数据是不同的,这时候我们可以用Service在后台定时更新,而不用每打开应用的时候在去获取。 Service生命周期 onCreate() 在服务被创建时调用,该方法只会被调用一次,无论调用多少次startService()或bindService()方法,服务也只被创建一次。 onStart() 只有采用Context.startService()方法启动服务时才会回调该方法。该方法在服务开始运行时被调用。多次调用startService()方法尽管不会多次创建服务,但onStart() 方法会被多次调用。 onDestroy() 服务被终止时调用。 onBind() 只有采用Context.bindService()方法启动服务时才会回调该方法。该方法在调用者与服务绑定时被调用,当调用者与服务已经绑定,多次调用Context.bindService()方法并不会导致该方法被多次调用。 onUnbind() 只有采用Context.bindService()方法启动服务时才会回调该方法。该方法在调用者与服务解除绑定时被调用。 startService后,即使调用startService的进程结束了Service仍然还存在,直到有进程调用stopService,或者Service自己自杀(stopSelf())。 bindService后,Service就和调用bindService的进程同生共死了,也就是说当调用bindService的进程死了,那么它bind的Service也要跟着被结束,当然期间也可以调用unbindservice让Service结束。 两种方式混合使用时,比如说你startService了,我bindService了,那么只有你stopService了而且我也unbindservice了,这个Service才会被结束。 进程生命周期 Android系统将会尝试保留那些启动了的或者是绑定了服务的进程。 如果该服务正在进程的onCreate(), onStart(), 或者 onDestroy() 这些方法中执行时, 那么主进程将会成为一个前台进程,以确保此代码不会被停止。 如果服务已经开始,那么它的主进程的重要性,低于所有可见的进程但高于不可见的进程, 由于只有少数几个进程是用户可见的,所以只要不是内存特别低,该服务不会停止。 如果有多个客户端绑定了服务, 只要客户端中的一个对于用户是可见的,即认为该服务可见。 如何使用Service 第一种是通过调用Context.startService()启动,调用Context.stopService()结束,startService()可以传递参数给Service。 第二种方式是通过调用Context.bindService()启动,调用Context.unbindservice()结束,还可以通过ServiceConnection访问Service。二者可以混合使用,比如可以先startService再bindservice。 Service开发步骤 第一步:继承Service类 public class MyService extends Service { } 第二步:在AndroidManifest.xml文件中的application节点里对服务进行配置: service android:name=.MyService / 服务不能自己运行,使用startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了,服务仍然运行。使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的特点。 如果打算采用Context.startService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onStart()

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档