书签 分享 收藏 举报 版权申诉 / 20
上传文档赚钱

类型《Android程序设计教程》课件第六章 Service服务.pptx

  • 上传人(卖家):momomo
  • 文档编号:7647912
  • 上传时间:2024-05-19
  • 格式:PPTX
  • 页数:20
  • 大小:289.24KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《Android程序设计教程》课件第六章 Service服务.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Android程序设计教程 Android程序设计教程课件第六章 Service服务 Android 程序设计 教程 课件 第六 Service 服务
    资源描述:

    1、让IT教学更简单,让IT学习更有效Android程序设计教程第6章 Service服务目录 6.1 Service简介 6.1.1 Service分类 6.1.2 Service基本示例 6.2 Service详解 6.2.1 Start方式启动Service 6.2.2 Bind方式启动Service 6.2.3 混合方式启动Service 6.2.4 前台Service 6.2.5 Service执行耗时任务 6.2.6 远程Service学习目标 了解Service分类 掌握Service的创建、配置和编写 掌握Service生命周期 掌握Service组件的通信6.1 Service简

    2、介 Service组件表示一种服务,专门用于执行一些持续的、耗时长的并且无须与用户界面交互的操作。Service的运行时不可见的,通常用于执行一些无须用户交互,并需要持续运行的任务 Service拥有独立的生命周期,其启动、停止以及运行的控制可以由其他组件完成 一个处于运行状态的Service拥有的优先级要比暂停和停止状态的Activity级别更高 如果在Service中需要执行耗时操作,必须新开线程运行,否则会阻塞主线程,从而造成界面卡顿现象6.1.1 Service分类 按照运行的形式和使用方式的不同,可以对Service进行分类:(1)按照运行的进程不同,可以将Service分为本地(L

    3、ocal)Service和远程(Remote)Service。(2)按照运行的形式分为前台Service和后台Service。(3)按照使用Service的方式可以分为启动(Start)方式Service、绑定(Bind)方式Service和混合方式Service。6.1.2 Service基本示例 创建一个Service组件只需要两步,而启动Service可以使用Start和Bind两种方式。创建Service的步骤如下:(1)通过继承Service的方式来定义一个Service的子类;(2)在应用程序的AndroidManifest.xml中配置Service组件。6.2 Service详

    4、解6.2.1 Start方式启动Service Start方式通过调用Context.startService()方法来启动Service。Service将自行管理生命周期,并会一直运行下去,直到Service调用自身的stopSelf()方法或其他组件调用该Service的stopService()方法时为止。一个组件通过startService()方法启动Service后,该组件与Service之间并没有关联,即使组件被销毁,也并不影响Service的运行 关于onStartCommand()方法的语法格式如下所示:public int onStartCommand(Intent inte

    5、nt,int flags,int startId)其中:参数intent是在启动Service时所传入的Intent对象。参数flags取值范围为0、Service.START_FLAG_REDELIVERY和Service.START_FLAG_RETRY。startID表示启动请求的ID,用于唯一标识一次启动请求,在调用stopSelfResult()方法停止Service时,可以传入特定的startId,用于对停止Service操作的附加条件 onStartCommand()方法的返回值有Service.START_NOT_STICKY、Service.START_STICKY和Serv

    6、ice.START_REDELIVER_INTENT三种情况。6.2.2 Bind方式启动Service 通过调用Context的bindService()方法也可以启动Service。使用Bind方式启动的Service会和启动它的组件关联在一起,并可以进行通信,组件可以通过unbindService()方法来解除绑定。bindService()方法的语法结构如下所示:public boolean bindService(Intent service,ServiceConnection conn,int flags)bindService()方法用于绑定Service,其返回值代表是否绑定成

    7、功,其参数如下:(1)参数service,在绑定Service时所传入的Intent对象。(2)参数conn,这是一个ServiceConnection接口类型的对象,在绑定或解除绑定时,系统会调用ServiceConnection接口中对应的回调方法(3)参数flags,用于决定Service的一些行为规则,常用的取值有0、BIND_AUTO_CREATE、BIND_NOT_FOREGROUND、BIND_WAIVE_PRIORITY、BIND_IMPORTANT、BIND_ABOVE_CLIENT和BIND_ADJUST_WITH_ACTIVITY。6.2.3 混合方式启动Service6

    8、.2.4 前台Service Service启动后,其所在的进程默认是服务进程,优先级并不高,如果该进程非常重要,可以通过Service的startForeground()方法将其改为前台进程。调用startForeground()方法后,Service运行时会在通知栏显示一个通知(Notification),Service停止后通知会消失。startForeground()方法声明格式如下:public final void startForeground(int id,Notification notification)其中:参数id是通知的id;参数notification需要显示的通知

    9、。当Service成为前台进程后,需要恢复原有的优先级可以调用stopForeground()方法取消其前台状态,从而允许系统在内存不足时更容易终止这个Service。stopForeground()方法声明格式如下:public final void stopForeground(int flags)stopForeground()方法只有一个参数,当降低Service的前台优先级时,指用该参数指定是否移除startForeground()方法所创建的通知。6.2.5 Service执行耗时任务 Service运行于UI线程中,如果直接在UI线程中执行耗时或可能被阻塞的任务,会造成界面无响应

    10、异常,因此这种耗时任务通常都需要新开线程执行。针对在Service中执行耗时任务,Android系统还专门提供了一种特殊的Service:IntentService。抽象类android.add.IntentService是Service的子类,其内部会自动开始一个新线程来执行任务,并在任务执行完毕后停止Service。当有多个任务时,IntentService会将任务加到一个队列中,按照次序依次执行,直到所有任务执行完毕后停止Service。使用IntentService非常简单,只需继承IntentService并重写onHandleIntent()方法即可,onHandleIntent(

    11、)方法的语法格式如下所示:protected abstract void onHandleIntent(Intent intent);其中,参数intent是Service客户端以Start方式启动Service时startService()方法所传入的intent对象。6.2.6 远程Service Android系统提供了远程Service,即允许被另一个进程中的组件访问的Service。为使远程Service能被其他进程访问,需要一种进程间通信的机制。进程是操作系统的概念,因此,跨进程通信需要将传递的对象分解成操作系统可以理解的基本单元,并且有序地通过进程边界。通过代码实现进程间通信数据的解析和传输需要编写冗长的模板式代码,为此,Android系统提供了AIDL(Android Interface Definition Language,Android接口定义语言)工具来完成这项工作。谢谢

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《Android程序设计教程》课件第六章 Service服务.pptx
    链接地址:https://www.163wenku.com/p-7647912.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库