收藏 分享(赏)

第六章 Service应用实例.ppt

上传人:hwpkd79526 文档编号:7897360 上传时间:2019-05-29 格式:PPT 页数:5 大小:401KB
下载 相关 举报
第六章 Service应用实例.ppt_第1页
第1页 / 共5页
第六章 Service应用实例.ppt_第2页
第2页 / 共5页
第六章 Service应用实例.ppt_第3页
第3页 / 共5页
第六章 Service应用实例.ppt_第4页
第4页 / 共5页
第六章 Service应用实例.ppt_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、第六章 Service应用实例,Android课件,认识Service,一、什么是Service 从字面上理解Service的意义是“服务”,它是在后台运行,不可交互的。它和前面讲解的Activity级别差不多,但是它不能自己运行,需要通过一个Activity或者Context对象来调用,如Context.startService()和Context.bindService()两种方法来启动Service。如果在Service的onCreate()或者onStart()做一些很耗时的动作,最好是启动一个新线程来运行Service,因为如果Service是运行在主线程中,会影响到程序的UI操作或

2、者阻塞主线程中的其他事情。 1)什么时候需要Service 这主要看应用的场景,例如,播放多媒体的时候用户启动了其他Activity,这个时候程序要在后台继续播放;如检测SD卡上下文变化;或者在后台记录用户的地理信息位置的改变等,一句话服务总是藏在后台。 一个直观的例子:一个正在从播放列表中播放歌曲的媒体播放器,在一个媒体播放器的应用中,应该会有多个Activity,让使用者可以选择歌曲并播放歌曲。然而音乐播放这个功能并没有对应的Activity,因为使用者会认为在导航到其他屏幕时音乐应该还在播放的。在这个例子中媒体播放器这个Activity会使用Context.startService()来

3、启动一个Service,从而可以在后台保持音乐播放。同时,系统也保持这个Service一直执行,直到Service运行结束,我们还可以进行暂停、重播等操作。 2)如何使用Service 这里以Local Service举例说明。 (1)创建布局文件main.xml,在其中的LinearLayout布局中放有4个按钮,分别用来进行4种操作。,使用Service,(2)创建TestServiceHolder和TestService类 在TestService中继承Service类,并重写onStart()、onDestroy()等方法,例子中重要通过输入LOG的方式确定被调用的方法。另外其中用到N

4、otification是为了明显表明Service存活的状态。 TestServiceHolder类用来测试Service。,使用Service,(3)在AndroidManifest.xml配置,Service的生命周期,二、Service的生命周期 Service的生命周期方法比Activity要少一些,只有onCreate()、onStart()、onDestroy()、从前面的例子可以看以看到,有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。 1)通过startService启动 Service启动的时候会经历生成开始(onCreate-onStart)

5、过程,Service停止的时候直接进入销毁过程(onDestroy)。而如果是调用者(TestServiceHolder)自己直接退出而没有调用stopService,Service会一直在后台运行。直到下次调用者(TestServiceHolder)再次启动起来,并明确调用stopService。 2)通过bindService启动 提供bindService启动Service,其只会运行onCreate,这个时候将TestServiceHolder和TestService绑定在一起,如果TestServiceHolder退出了,Service就会调用onUnbind-onDestroy,所谓绑定在一起就共存亡了。 这里要明确,不管用什么方法启动多少次Service,Service的onCreate方法只会被调用一次,无论多少次的启动或者绑定,Service只被创建一次。如果先是绑定(bind)了,那么启动(start)的时候就直接运行Service的onStart方法,如果先是启动(start),那么绑定(bind)的时候就直接运行onBind方法。如果先绑定(bind)上了,就停止(stop)不掉了,也就是stopService不能用了,只能先UnbindService,再stopService,所以是先启动(start)还是先绑定(bind)行为是有区别的。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报