第十章 后台默默的劳动者一探究服务 主讲:王海
第十章 后台默默的劳动者--探究服务 主讲:王海
Service简介 Service组件表示一种服务,专门用于执行一些持续性的、耗时长的并且无需 与用户界面交互的操作 Service的运行是不可见的,通常用于执行一些无需用户交互,并需要持续运 行的任务 Service拥有独立的生命周期 Service没有界面(最多只能显示一个通知),当Service所对应的应用程序界 面不可见时,Service仍运行于应用程序主线程中 Android系统中提供了大量可以直接调用的系统Service,例如播放音乐、震 动、闹钟、通知栏消息等 Android软件开发 主讲:王海
Android软件开发 主讲:王海 Service简介 • Service组件表示一种服务,专门用于执行一些持续性的、耗时长的并且无需 与用户界面交互的操作 • Service的运行是不可见的,通常用于执行一些无需用户交互,并需要持续运 行的任务 • Service拥有独立的生命周期 • Service没有界面(最多只能显示一个通知),当Service所对应的应用程序界 面不可见时,Service仍运行于应用程序主线程中 • Android系统中提供了大量可以直接调用的系统Service,例如播放音乐、震 动、闹钟、通知栏消息等
Service分类 按照运行的进程不同,可以将Service分为: √本地(Local)Service √远程(Remote)Service 按照运行的形式分为: √前台Service √后台Service ·按照使用Servicel的方式可以分为: √启动(Start)方式Service √绑定(Bind)方式Service √混合方式Service Android软件开发 主讲:王海
Android软件开发 主讲:王海 Service分类 • 按照运行的进程不同,可以将Service分为: 本地(Local)Service 远程(Remote)Service • 按照运行的形式分为: 前台Service 后台Service • 按照使用Service的方式可以分为: 启动(Start)方式Service 绑定(Bind)方式Service 混合方式Service
创建Servicel的步骤 ①通过继承Service的方式来定义一个Servicel的子类 ②在应用程序的AndroidManifest.xml中配置Services组件 Android软件开发 主讲王海
Android软件开发 主讲:王海 创建Service的步骤 ①通过继承Service的方式来定义一个Service的子类 ②在应用程序的AndroidManifest.xml中配置Service组件
编写Service类 【语法】public abstract IBinder onBind(Intent intent); 【案例8-l】MyService1.java //一个空的Service.示例 public class MyServicel extends Service @Override public IBinder onBind(Intent intent){ return null; Android软件开发 主讲:王海
Android软件开发 主讲:王海 编写Service类 • 【语法】 • 【案例8- 1】MyService1.java public abstract IBinder onBind(Intent intent); // 一个空的Service示例 public class MyService1 extends Service { @Override public IBinder onBind(Intent intent) { return null; } }
配置Service 在AndroidManifest..xml中,每个Service组件都需要在元素的一个 子元素中进行配置 Android软件开发 主讲:王海
Android软件开发 主讲:王海 配置Service • 在AndroidManifest.xml中,每个Service组件都需要在元素的一个 子元素中进行配置
启动Service 启动Service7有Start和Bind两种方式 Intent intent new Intent(this,MyServicel.class); startService(intent); Android软件开发 主讲:王海
Android软件开发 主讲:王海 启动Service • 启动Service有Start和Bind两种方式 Intent intent = new Intent(this, MyService1.class); startService(intent);
Service生命周期回调方法 方法 功能描述 onCreate() 用于创建Service组件 onStartCommand(Intent intent,int flags,,int通过Start方式启动Service时调用 started) onBind(Intent intent) 通过Bind方式启动Service onUnbind(Intent intent) 通过Bind方式取消Service绑定 onRebind(Intent intent) 通过Bind方式重新绑定Service onDestroy() 用于销毁Service Android软件开发 主讲:王海
Android软件开发 主讲:王海 Service生命周期回调方法 方法 功能描述 onCreate() 用于创建Service组件 onStartCommand(Intent intent, int flags, int started) 通过Start方式启动Service时调用 onBind(Intent intent) 通过Bind方式启动Service onUnbind(Intent intent) 通过Bind方式取消Service绑定 onRebind(Intent intent) 通过Bind方式重新绑定Service onDestroy() 用于销毁Service
Start方式启动Service 调用 startService() onCreate() onStartCommand() 活动期 Service运行中 服务被自身或 客户端停止 onDestroy() Service停止 Android软件开发 主讲:王海
Android软件开发 主讲:王海 Start方式启动Service 调用 startService() onCreate() onStartCommand() Service运行中 服务被自身或 客户端停止 onDestroy() Service停止 活动期
Bind方式启动Service 调用 bindService() onBind() 客户蝴绑定至 Service 活动期 所有的客户增通过调用 unbindService()解除绑定 onUnBind( onDestroy() Service停止 Android软件开发 主讲:王海
Android软件开发 主讲:王海 Bind方式启动Service 调用 bindService() onCreate() onBind() 客户端绑定至 Service onDestroy() Service停止 活动期 onUnBind() 所有的客户端通过调用 unbindService()解除绑定