Android中的Service概念及用途

Android中的Service概念及用途

ID:40545721

大小:324.00 KB

页数:14页

时间:2019-08-04

Android中的Service概念及用途_第1页
Android中的Service概念及用途_第2页
Android中的Service概念及用途_第3页
Android中的Service概念及用途_第4页
Android中的Service概念及用途_第5页
资源描述:

《Android中的Service概念及用途》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Service概念及用途Android中的Service,其意思是“服务”,它是在后台运行,不可交互的。Service自己不能运行,需要通过某一个Activity或者其它Context对象来调用,如Context.startService()和Context.bindService()两种方式启动Service。Android中的服务,它与Activity不同,它是不能与用户交互的,不能自己启动的,运行在后台的程序,如果我们退出应用时,Service进程并没有结束,它仍然在后台运行,那我们什么时候会用到Service呢?比如我们播放音乐的时候,有可能想

2、边听音乐边干些其他事情,当我们退出播放音乐的应用,如果不用Service,我们就听不到歌了,所以这时候就得用到Service了,又比如当我们一个应用的数据是通过网络获取的,不同时间(一段时间)的数据是不同的这时候我们可以用Service在后台定时更新,而不用每打开应用的时候在去获取。如果在Service的onCreate或者onStart方法中做一些很耗时的动作,最好是启动一个新线程来运行这个Service,因为,如果Service运行在主线程中,会影响到程序的UI操作或者阻塞主线程中的其它事情。Service生命周期Service的生命周期方法比Ac

3、tivity要少一些,只有onCreate、onStart、onDestroy。有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。1)通过startService启动Service启动的时候会经历生成开始(onCreateàonStart)过程,Service停止的时候直接进入销毁过程(onDestroy)。而如果是调用者直接退出而没有调用stopService,Service会一直在后台运行。直到下次调用者再启动起来,并明确调用stopService。2)通过bindService启动通过bindService方法启动S

4、ervice,其只会运行onCreate方法,如果调用退出了,Service会调用onUnbind,onDestroyed方法。Service的onCreate方法只会被调用一次。如果先绑定了,那么启动的时候就直接运行Service的onStart方法,如果先启动,那么绑定的时候就直接运行onBind方法。如果先绑定上了,就停止不了,也就是stopService不能用了,只能先unbindService,再stopService,所以,先启动还是先绑定,是有区别的。示例1下面以一个通过Service来播放音乐的例子说明Service的具体用法,其具体界

5、面如下所示:在这个界面中,点击“StartPlaying”按钮,即开始打开音乐文件,进行循环播放。点击“StopPlaying”按钮,即关闭音乐,并退出应用程序。其程序结构如下图所示:可以看到,其功能主要由Music与TestMusicService两个类组成,其源代码如下:packagecom.shen.service;importandroid.app.Activity;importandroid.content.Intent;importandroid.os.Bundle;importandroid.view.View;importandroid

6、.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.TextView;publicclassTestMusicServiceextendsActivity{privateTextViewtv;privateButtonbtn1,btn2;/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(

7、savedInstanceState);setContentView(R.layout.main);btn1=(Button)this.findViewById(R.id.btn1);btn1.setOnClickListener(newButtonListener1());btn2=(Button)this.findViewById(R.id.btn2);btn2.setOnClickListener(newButtonListener2());}privateclassButtonListener1implementsOnClickListener

8、{publicvoidonClick(Viewv){TestMusicService.this

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

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

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