第11章 Service与BroadcastReceiver-【千锋教育】Android从入门到精通

2023-03-21
| 34页
| 220人阅读
| 1人下载
教辅

内容正文:

第11章 Service与BroadcastReceiver Service简介 电话管理器 短信管理器 音频管理器 手机闹钟服务 接收广播消息 掌握Service组件的使用方法 掌握BroadcastReceiver接收系统广播 掌握Service的生命周期 掌握IntentService的功能和用法 学 习 目 标 LEARNING OBJECTIVES 初心至善 匠心育人 11.1 Service简介 11.1.1 创建和配置Ser-vice 11.1.2 启动和停止 11.1.3 绑定本地Service 11.1.4 Service的生命周期 11.1.5 IntentService简介 目录 Contents 初心至善 匠心育人 11.1 Service简介 Service与Activity很相似,它甚至可以认为是没有界面的Activity。Service有自己的生命周期,其创建、配置的方式也与Activity很相似。接下来详细介绍Service的开发。 初心至善 匠心育人 11.1 Service简介 11.1.1 创建和配置Service Service的创建过程与Activity很相似,首先定义一个继承Service的子类,然后在清单文件AndroidManifest.xml中配置该Service。 定义Service子类,就是继承Service并重写相应的方法。 初心至善 匠心育人 11.1 Service简介 11.1.1 创建和配置Service 上面定义的Service子类DemoService重写了几个方法,具体解释如表所示。 另外需要注意的是,Service与Activity都是从Context派生出来的,因此它们都可以调用Context里定义的如getResources()、getContentResolver()等方法。 初心至善 匠心育人 11.1 Service简介 11.1.1 创建和配置Service 上例中定义完DemoService后要在清单文件AndroidManifest.xml配置该Service,具体配置代码如下: 上面配置代码中enabled属性是指该Service是否能够被实例化,默认值为true,表示能被实例化。 初心至善 匠心育人 11.1 Service简介 11.1.1 创建和配置Service 当Service开发完成之后,接下来就可在程序中运行该Service了。在Android系统中运行Service有两种方式: 通过Context的startService()方法:通过该方法启动Service,访问者与Service之间没有关联,即使访问者退出了,Service也仍然运行。 通过Context的bindService()方法:通过此方法启动Service,访问者与Service绑定在一起,访问者一旦退出,Service也被销毁。 下面先示范第一种方式运行Service。 初心至善 匠心育人 11.1 Service简介 11.1.2 启动和停止Service 下面示例通过Activity访问Service,该Activity的界面包括两个Button,一个Button用于启动Service,另一个Button用于关闭该Service。这里就不展示界面文件中的代码,Java代码如例所示。 上面代码中第7、10、13行是关键代码,直接调用Context中定义的startService(intent)与stopService(intent)方法即可启动、停止Service。 初心至善 匠心育人 11.1 Service简介 11.1.2 启动和停止Service 运行程序,单击三次启动Service的按钮,打印出的日志结果如图所示: 从图中可以看出,虽然单击了三次启动Service的按钮,但是onCreate()方法只调用了一次,onStartCommand()方法调用了三次,验证了每次启动Service都会调用onStartCommand()方法。最后单击关闭Service的按钮,onDestroy()方法被调用,Service被销毁。 初心至善 匠心育人 11.1 Service简介 11.1.3 绑定本地Service 11.1.2节介绍了在Android系统中运行Service的第一种方式,本节来介绍第二种:bindService()方式。 Context的bindService()方法的完整参数为bindService(Intent service, ServiceConnection conn, int flags),而startService()方法中只有一个参数startService(Intent service)。因此当Service和

资源预览图

第11章 Service与BroadcastReceiver-【千锋教育】Android从入门到精通
1
第11章 Service与BroadcastReceiver-【千锋教育】Android从入门到精通
2
第11章 Service与BroadcastReceiver-【千锋教育】Android从入门到精通
3
第11章 Service与BroadcastReceiver-【千锋教育】Android从入门到精通
4
第11章 Service与BroadcastReceiver-【千锋教育】Android从入门到精通
5
第11章 Service与BroadcastReceiver-【千锋教育】Android从入门到精通
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。