
华联学院《android软件开发》课件10后台默默的劳动者--探究服务
20页1、第十章后台默默的劳动者-探究服务Android软件开发主讲:王海Service简介Service组件表示一种服务,专门用于执行一些持续性的、耗时长的并且无需与用户界面交互的操作Service的运行是不可见的,通常用于执行一些无需用户交互,并需要持续运行的任务Service拥有独立的生命周期Service没有界面(最多只能显示一个通知),当Service所对应的应用程序界面不可见时,Service仍运行于应用程序主线程中Android系统中提供了大量可以直接调用的系统Service,例如播放音乐、震动、闹钟、通知栏消息等Android软件开发主讲:王海Service分类按照运行的进程不同,可以将Service分为: 本地(Local)Service 远程(Remote)Service按照运行的形式分为: 前台Service 后台Service按照使用Service的方式可以分为: 启动(Start)方式Service 绑定(Bind)方式Service 混合方式ServiceAndroid软件开发主讲:王海创建Service的步骤通过继承Service的方式来定义一个Service的子类
2、在应用程序的AndroidManifest.xml中配置Service组件Android软件开发主讲:王海编写Service类【语法】【案例8- 1】MyService1.javapublic abstract IBinder onBind(Intent intent);/ 一个空的Service示例public class MyService1 extends Service Overridepublic IBinderonBind(Intent intent) return null;Android软件开发主讲:王海配置Service在AndroidManifest.xml中,每个Service组件都需要在元素的一个子元素中进行配置Android软件开发主讲:王海启动Service 启动Service有Start和Bind两种方式Intent intent = new Intent(this, MyService1.class);startService(intent);Android软件开发主讲:王海Service生命周期回调方法方法功能描述onCreate()用于创建Servi
3、ce组件onStartCommand(Intent intent, int flags, intstarted)通过Start方式启动Service时调用onBind(Intent intent)通过Bind方式启动ServiceonUnbind(Intent intent)通过Bind方式取消Service绑定onRebind(Intent intent)通过Bind方式重新绑定ServiceonDestroy()用于销毁ServiceAndroid软件开发主讲:王海Start方式启动Service调用调用startService()onCreate()onStartCommand()Service运行中运行中服务被自身或服务被自身或客户端停止客户端停止onDestroy()Service停止停止活动期活动期Android软件开发主讲:王海Bind方式启动Service调用调用bindService()onCreate()onBind()客户端绑定至客户端绑定至ServiceonDestroy()Service停止停止活动期活动期onUnBind()所有的客户端通过调用所有的客户端通
4、过调用unbindService()解除绑定解除绑定Android软件开发主讲:王海混合方式的ServiceService运行中运行中客户端已绑定客户端已绑定除特殊情况外除特殊情况外,onStartCommand()和和onBind()被调用被调用onUnbind()所有的客户端通过调用所有的客户端通过调用onUnbindService()解除绑定解除绑定onDestroy()服务也通过服务也通过stopSelf()或或stopService()停止了吗停止了吗?是是Service停止停止Service运行中运行中否否onUnbind()返回返回true?客户端调用客户端调用bindService()onBind()onRebind()否否是是Android软件开发主讲:王海进程类型前台进程(Foreground Process)可见进程(Visible Process)服务进程(Service Process)后台进程(Background Process)Android软件开发主讲:王海前台ServiceService启动后,其所在进程默认是服务进程,优先级并不高通过Service
5、的startForeground()方法将Service改为前台进程【语法】 参数id:通知的id 参数notification:需要显示的通知 调用stopForeground()方法取消其前台状态 【语法】public final void startForeground(int id, Notification notification)public final void stopForeground(booleanremoveNotification)Android软件开发主讲:王海Service中执行耗时任务针对在Service中执行耗时任务,Android还专门提供了一种特殊的Service:IntentService抽象类android.app.IntentService是Service的子类IntentService会自动开始一个新线程来执行任务,并在任务执行完毕后停止Service使用IntentService非常简单,只需继承IntentService并重写onHandleIntent()方法即可Android软件开发主讲:王海远程Service远程Service允
《华联学院《android软件开发》课件10后台默默的劳动者--探究服务》由会员东***分享,可在线阅读,更多相关《华联学院《android软件开发》课件10后台默默的劳动者--探究服务》请在金锄头文库上搜索。