Android移动应用设计与开发 教学课件 作者 黄宏程 胡敏 陈如松 Android移动应用设计与开发--第06章 .ppt

Android移动应用设计与开发 教学课件 作者 黄宏程 胡敏 陈如松 Android移动应用设计与开发--第06章 .ppt

ID:50315082

大小:1.21 MB

页数:13页

时间:2020-03-08

Android移动应用设计与开发 教学课件 作者 黄宏程 胡敏 陈如松 Android移动应用设计与开发--第06章 .ppt_第1页
Android移动应用设计与开发 教学课件 作者 黄宏程 胡敏 陈如松 Android移动应用设计与开发--第06章 .ppt_第2页
Android移动应用设计与开发 教学课件 作者 黄宏程 胡敏 陈如松 Android移动应用设计与开发--第06章 .ppt_第3页
Android移动应用设计与开发 教学课件 作者 黄宏程 胡敏 陈如松 Android移动应用设计与开发--第06章 .ppt_第4页
Android移动应用设计与开发 教学课件 作者 黄宏程 胡敏 陈如松 Android移动应用设计与开发--第06章 .ppt_第5页
资源描述:

《Android移动应用设计与开发 教学课件 作者 黄宏程 胡敏 陈如松 Android移动应用设计与开发--第06章 .ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Android移动应用设计与开发第6章服务6.1本地服务6.1.1两种启动方式6.1.2生命周期6.2远程服务6.3服务小实例6.4本章小结本章导读第6章服务Service是Android系统中的四大组件之一,它与Activity不同,它是不能与用户交互的。它是一种长生命周期的,没有可视化界面,运行于后台的一种服务程序。6.1本地服务本地服务(LocalService)用于应用程序内部,可以实现应用程序自己的一些耗时任务,比如查询升级信息、网络传输,或者在一些场合需要在后台执行,比如播放音乐,并不占用应用程序比如Activity所属的线程,而是单

2、开线程后台执行,这样用户体验比较好。6.1.1两种启动方式Service有两种启动方式:1、通过Context.bindService(Intentintent,ServiceConnectionconn,intflags)绑定时,bindService->onCreate()–>onBind();绑定Service需要三个参数:intent:Intent对象,需要定义指向服务类。conn:ServiceConnection接口对象,创建该对象要实现它的onServiceConnected()和onServiceDisconnected()来判断连

3、接成功或者是断开连接。flags:创建Service模式,一共有以下三种模式:Service.BIND_AUTO_CREATE:指定绑定的时候自动创建Service,最常使用的模式Service.BIND_DEBUG_UNBIND:测试绑定的时候,进行调试所用Service.BIND_NOT_FOREGROUND:不在前台进行绑定6.1.1两种启动方式解绑定,unbindService–>onUnbind()–>onDestory();此时如果调用者(如Activity)直接退出,Service由于与调用者绑定在一起,则Service会随着调用者一

4、同停止。2、通过Context.startService(Intentintent)启动时,startService–>onCreate()–>onStart();停止时,stopService–>onDestroy();6.1.2生命周期Service生命周期一般有两种运行模式,这两种模式并不是完全分离的:该模式下,Service是通过Context.startService()方法开始,以Context.stopService()方法停止。外部程序建立一个到Service的连接,通过这个连接来操作Service。建立连接开始于Context.b

5、indService(),结束于Context.unbindService()。多个客户端可以绑定到同一个Service,如果Service没有启动,可以通过Context.bindService()启动它。在程序没有停止Service或者Service自己停止的情况下,Service将一直在后台运行。1可以通过接口被外部程序调用。26.1.2生命周期Service的生命周期:12整个生命周期活动生命周期从onCreate()开始,到onDestroy()结束,跟Activity很类似。Service生命周期在onCreate()中执行初始化操作,

6、在onDestroy()中释放所有用到的资源。开始于onStart(),或者开始于onBind()方法。在音乐播放器中,使用Context.startService()方法启动,音乐服务会通过Intent来查看要播放哪首歌曲并开始播放。6.1.2生命周期两种不同的启动方式决定了服务的生命周期不完全相同,但这两种服务过程并非完全对立的,有时候我们需要将它们结合起来使用。6.2远程服务远程服务(RemoteService)用于Android系统内部的应用程序之间。可以通过自己定义并暴露出来的接口进行程序操作。应用程序建立一个到服务对象的连接,并通过那个

7、连接来调用服务。连接以调用Context.bindService()方法建立,以调用Context.unbindService()关闭。多个应用程序可以绑定至同一个服务。如果服务此时还没有加载,Context.bindService()会先加载它。可被其他应用程序复用,比如天气预报服务,其他应用程序不需要再写这样的服务,调用已有的即可。在Android系统中,一个进程通常不能直接访问其他进程的内存空间。如果要在不同的进程间传递对象,需要把对象解析成操作系统能够理解的数据格式。Android采用AIDL(接口定义语言)的方式实现。AIDL是一种接口定

8、义语言,用于约束两个进程间的通讯规则,编译器会生成它的代码,从而实现Android设备上的两个进程间通信(IPC)。6.3

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

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

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