《Service应用》PPT课件

《Service应用》PPT课件

ID:41113015

大小:589.01 KB

页数:11页

时间:2019-08-16

《Service应用》PPT课件_第1页
《Service应用》PPT课件_第2页
《Service应用》PPT课件_第3页
《Service应用》PPT课件_第4页
《Service应用》PPT课件_第5页
资源描述:

《《Service应用》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第五章Service应用本章主要内容什么是Service跨进程调用Service实例——音乐播放器什么是Service顾名思义,Service即“服务”的意思,它与Activity属于同一等级的应用程序组件,不同的是Activity拥有前台运行的用户界面,而Service不能自己运行,需要通过某个Activity或者其他Context对象来调用。Service在后台运行,它不能与用户直接进行交互。在默认情况下,Service运行在应用程序进程的主线程之中,但如果需要在Service中处理一些诸如连接网络等耗时操作时,就应该将其放在单独的线程中进行处理

2、,避免阻塞用户界面。可以通过Context.startService()和Context.bindService()两种方式来启动Service。什么是Service使用Context.startService()启动Service经历如下的步骤Context.startService—>onCreate()—>onStart()—>Servicerunning—>onDestroy()—>Servicestop如果Service处于未运行的状态,则需要先调用onCreate()然后再调用onStart()的顺序来启动;如果Service已经处于运行

3、状态,则只需要调用onStart()来启动Service即可。onStart()方法可被重复的调用多次。如果是使用这种方式启动Service,那么关闭Service的方法就很简单,可以通过调用stopService()方法停止Service,再调用onDestroy()方法销毁Service。如果调用者直接退出而没有调用stopService,那么Service会在后台一直运行,直到该Service的调用者再次启动后通过stopService关闭Service。这种调用方式的Service生命周期:onCreate()—>onStart()(多次)—

4、>onDestroy()。什么是Service2.使用Context.bindService()启动Service该种方法启动Service需要经历如下步骤Context.bindService()—>onCreate()—>onBind()—>Servicerunning—>stopService()—>onUnbind()—>onDestroy()—>Servicestop。onBind将返回给客户端一个IBind接口实例,这个实例允许客户端回调服务方法,比如得到Service的运行状态的操作。这种方法会把调用者(Context,Activity

5、等)和Service绑定在一起,Context退出时,Service也会调用onUnbind()—>onDestroy()退出。所以这种调用方式下Service的生命周期为:onCreate()—>onBind()(与第一种方式不同,这里onBind()只能绑定一次,不可多次绑定)—>onUnbind()—>onDestroy()。跨进程调用通常应用程序都在一个专属于自己的进程内运行,但有时需要在进程间传递对象,这就涉及到了跨进程调用机制。在Android平台中,一个进程不能直接访问其他进程的内存区域。为了解决进程间数据共享的问题,需要把对象拆分成操

6、作系统能理解的简单形式,以便伪装成本地对象进行跨界访问,为此就需要跨进程通信的双方约定一个统一的接口。由于编写这种接口的方法具有很大的共性,Android提供了AIDL工具来辅助完成接口的编写工作。AIDL(AndroidInterfaceDefinitionLanguage,即Android接口描述语言)属于IDL语言的一种,借助它可以快速地生成接口代码,使得在同一个Android设备上运行的两个进程之间可以通过内部通信进程进行交互。如果需要在一个进程中(假设为一个Activity)访问另一个进程中(假设为一个Service)某个对象的方法,就可以

7、使用AIDL来生成接口代码并传递各种参数。跨进程调用跨进程调用通常是以服务端提供服务供客户端调用的形势存在的。因此要使用AIDL,服务端需要以aidl文件的方式提供服务接口,AIDL工具将生成一个对应的java接口对象,并且在生成的接口中包含一个供客户端调用的stub服务桩类,Stub对象就是远程对象的本地代理。服务端的实现类需要提供返回stub服务桩类对象的方法。使用时,客户端通过onBind方法得到服务端stub服务桩类的对象,之后就可以像使用本地对象一样使用它了。Service实例——音乐播放器为了更好的学习和深入的了解Service,这里通过

8、一个示例项目来介绍分别通过Context.startService()和Context.bindServic

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。