第5章-后台服务和系统服务调用.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 后台服务与系统服务调用 5.1后台服务Service Android系统的Service是一种类似于Activity的组件,但Service没有用户操作界面,也不能自己启动,其主要作用是提供后台服务调用。Service不像Activity那样,当用户关闭应用界面就停止运行,Service会一直在后台运行,除非另有明确命令其停止。 通常使用Service为应用程序提供一些只需在后台运行的服务,或不需要界面的功能,例如,从Internet下载文件、控制Video播放器等。 通常Service要在一个Activity中启动,调用Activity的startService(Intent)方法启动Service。 若要停止正在运行的Service,则调用Activity的stopService(Intent)方法关闭Service。 方法startService()和stopService()均继承于Activity及Service共同的父类android.content.Context。 一个服务只能创建一次,销毁一次,但可以开始多次,即onCreate()和onDestroy()方法只会被调用一次,而onStartCommand()方法可以被调用多次。后台服务的具体操作一般应该放在onStartCommand()方法里面。如果Service已经启动,当再次启动Service时则不调用onCreate()而直接调用onStartCommand()。 设计一个后台服务的应用程序步骤: (1)创建Service的子类: 编写onCreate()方法,创建后台服务; 编写onStartCommand()方法,启动后台服务; 编写onDestroy()方法,终止后台服务,并删除所有调用。 (2)创建启动和控制Service的Activity: 创建Intent对象,建立Activity与Service的关联; 调用Activity的startService(Intent)方法启动Service后台服务; 调用Activity的stopService(Intent)方法关闭Service后台服务。 (3)修改配置文件AndroidManifest.xml: 在配置文件AndroidManifest.xml的application标签中添加如下代码: service android:enabled=true android:name=.AudioSrv / 【例5-1】一个简单的后台音乐服务程序示例。 本例通过一个按钮启动后台服务,在服务程序中播放音乐文件,演示服务程序的创建、启动,再通过另一按钮演示服务程序的销毁过程。新建项目ex5-1后,将一个音频文件mtest1.mp3复制到应用程序的资源res/raw目录下。 5.2信息广播机制Broadcast Broadcast是Android系统应用程序之间传递信息的一种机制。当系统之间需要传递某些信息时,不是通过诸如单击按钮之类组件来触发事件,而是由系统自身通过系统调用来引发事件。这种系统调用是由BroadcastReceiver类的实现的,把这种系统调用称为广播。 BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播信息。 实现广播和接收机制的步骤: (1)创建Intent对象,设置Intent对象的action属性。这个action属性是接收广播数据的标识。注册了相同action属性的广播接收器才能收到发送的广播数据。 Intent intent = new Intent();   intent.setAction(abc); (2)编写需要广播的信息内容,将需要播发的信息封装到Intent中,通过Activity或Service继承其父类Context的sendBroadcast()方法将Intent广播出去。 intent.putExtra(hello, 这是广播信息!); sendBroadcast(intent); (3)编写一个继承BroadcastReceiver的子类作为广播接收器,该对象是接收广播信息并对信息进行处理的组件。在子类中要重写接收广播信息的onReceive()方法。 (4)在配置文件AndroidManifest.xml中注册广播接收类。 service android:name=.TestReceiver intent-filter action android:name=abc / /intent-filter /service (5)销毁广播接收器。 Android系统在执行onReceive()方法时,会启

文档评论(0)

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

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

1亿VIP精品文档

相关文档