- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 服务的应用学习目标1 理解服务的应用2 掌握服务启动的两种方法3 能够熟练使用服务的应用8.1 服务概述1服务简介服务Service是一种可在后台长时间执行操作而不提供界面的应用组件,适合执行不需要和用户交互而且还需要长期运行的任务。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。此外,组件可通过绑定到服务与之进行交互,甚至是执行进程间通信(IPC)。例如,服务可在后台处理网络事务,执行文件I/O或与内容提供程序进行交互。如要创建服务,必须创建继承自Service的子类或者使用它的现有子类,重写一些回调方法,并在清单文件中声明。根据服务启动方式的不同可以分为启动服务和绑定服务。8.1 服务概述服务的名称服务的属性2 服务的创建当我们需要使用一个服务时,我们就需要创建服务,下面我们通过一个案例演示服务的创建,操作步骤如下。第一步 新建项目新建一个项目命名为Service,所在包名为:com.example.service。第二步 创建服务选择程序的包名,点击鼠标右键,选择“New”--“Service”--“Service”,弹出如图8-1所示的对话框。图8-1 新建Service的对话框在学习Activity时我们提到Activity必须在AndroidManifest.xml文件中注册了才能用,对于服务也是一样的。我们打开AndroidManifest.xml文件可以看到如下代码: service android:name=.MyService android:enabled=true android:exported=true/service使用这种方法创建服务,Android Studio会自动在清单文件AndroidManifest中增加service标记声明新建的服务。如果是通过新建继承Service类的方法创建服务,那么必须手动在AndroidManifest文件中添加service标记声明服务。8.2 启动服务服务的启动有两种方式,一种是使用startService()方法启动,另一种是使用bindService()方法启动。启动服务是通过调用startService()方法的方式启动服务,以这种方式启动的服务会长期在后台运行,服务的状态与开启者的状态是没有关系的。例如在一个Activity中调用startService()方法启动了一个服务,那么当这个Activity销毁以后,服务依然在运行,也就是说即使启动服务的组件已经被销毁,服务会依旧运行。1 创建启动服务图9-2 启动服务运行界面 启动服务由另一个组件(如Activity)通过调用startService()方法启动服务,服务启动后,其生命周期即独立于启动它的组件,即使系统已销毁启动服务的组件,该服务仍可在后台无限期地运行。因此,服务应在其工作完成时通过调用stopSelf()方法来自行停止运行,或者由另一个组件通过调用stopService()方法来将其停止。下面我们通过如图8-2所示效果实例学习使用这种启动方式如何来启动服务和关闭服务,具体步骤如下:实现的核心思路:在MyServer.java中: 在MyService服务中重写onCreate()方法,onStartCommad()方法和onDestroy()方法, 在这三个方法中分别通过Log.i()方法打印程序执行时调用到的方法。在MainActivity中实现单击按钮的点击事件 “启动服务”命令按钮的单击事件在startMyService()方法中实现,首先定义了一个Intent对象,指明当前活动this和目标服务MyService,然后通过调用startService()方法开启Intent对象;“停止服务”命令按钮的单击事件在stopMyService()方法中实现,通过调用stopService()方法关闭了Intent对象指定的服务MyService。启动服务的生命周期启动服务的生命周期过程的方法依次为onCreate()方法、onStartCommand()方法和onDestroy()方法。其中:?onCreate()方法:是在第一次创建服务的时候系统将调用此方法。如果服务已经运行,则不会调用此方法,该方法只调用一次。?onStartCommand()方法:当另一个组件通过调用startService()方法请求启动服务时,系统将调用此方法。?onDestroy()方法:是在关闭服务是执行的方法。使用startService()方法启动的服务,启动后就与启动它的组件不相关了,停止服务只能使用stopService()方法或者是stopSelf()方法。图8-6 启动服务的生命周期 8.3 绑定服务图8-7 BindService运行界面绑定服
您可能关注的文档
- 无人机装配与调试技术课件 项目1 无人机装配工艺及工具材料认知任务1.1 无人机装调安全操作.pptx
- 无人机装配与调试技术课件 项目1 无人机装配工艺及工具材料认知任务1.2 无人机装配工艺认知.pptx
- 无人机装配与调试技术课件 项目1 无人机装配工艺及工具材料认知任务1.3 使用无人机装调工具.pptx
- 无人机装配与调试技术课件 项目1 无人机装配工艺及工具材料认知任务1.4 使用无人机装调材料.pptx
- 材料力学课件1-3构件的变形.pptx
- 材料力学 课件 5-5弯曲中心.pptx
- 材料力学课件 11-3交变应力.pptx
- 无人机装配与调试技术课件 项目3 固定翼无人机装配与调试 任务3.6调试固定翼无人机飞控系统.pptx
- 无人机装配与调试技术课件 项目3 固定翼无人机装配与调试 任务3.5调试固定翼无人机动力系统.pptx
- 无人机装配与调试技术课件 项目3 固定翼无人机装配与调试 任务3.4装配固定翼无人机飞控系统.pptx
原创力文档


文档评论(0)