09Service.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
09Service

S Service,可以说是没有界面的Activity,也是可执行的程序,Service与Actiity之间的区别在于,它与用户不需要交互,用户也不用知道它的存在。 官方定义: A Service is an application component representing either an applications desire to perform a longer-running operation while not interacting with the user or to supply functionality for other applications to use. 配置Service,系统才能找到这个Service AndroidManifest.xml ----------------------------------------------------------- android:name属性指定该Service所在包中的位置,即路径,系统根据这个路径就能找到SamlpeService.class文件。 intent-filter/intent-filter是一个动作过滤器,该过滤器中有个动作action android:name=ent.action.MySample/ 表明只要系统或其它程序发出了动作名(android:name)为ent.action.MySample的动作(action),就能启动该Service. 因此,我们有两种方法启动一个Service: 1.显式启动:直接指定要启动Service的属性名; 2.隐式启动:向系统全局发出一个名为ent.action.MySample的动作。 启动和停止Service 绑定Service并与之通信 调用bindService(Intent service,ServiceConnenction conn,int flags)就可以与Service绑定了。 第一个参数是一个intent,该intent指向要启动的Service. 第二个参数作为Activity与Service之间的媒介,只有通过第二个参数才能访问得到Service的内容 第三个参数指定绑定时是否自动创建Service BindService.java MainActivity.java BindService.MyBinder bind=null; ServiceConnection conn=new ServiceConnection(){ @Override public void onServiceConnected(ComponentName name, IBinder service) { bind=(BindService.MyBinder)service; } @Override public void onServiceDisconnected(ComponentName name) { System.out.println(——————onServiceDisconnected————); } }; pb.setProgress(bind.getCount()); 注意:service也是运行在主线程里的,所以在Service里面也不能做一些耗时的操作,耗时的操作必须在新线程中执行。 因此Android为我们提供了一个IntentService类,该类自己提供了一个新线程为我们执行业务,无需自己创建一个新线程 简单说,IntentService是继承于Service并处理异步请求的一个类 ,并且只有一条线程,如果有多条请求,则会按照请求发来的顺序逐条在该线程里执行业务,即同一时刻只能执行一次请求操作。 继承IntentService类并实现该方法,将你要实现的业务代码写在该方法中,该方法中的代码会在新线程里执行。 关于继承IntentService,构造函数需要注意一个地方,Eclipse默认生成的构造函数是 public MyIntentService(String name) { super(name); } 继承IntentService的类必须有一个public的无参的构造函数,将上面Eclipse自动生成的构造函数改为下面这样的就可以了: public MyIntentService() { super(someName); } MainActivity中 iIntent=new Intent(); iIntent.setClass(getApplicationContext(), IntentServiceDemo.class); Bundle bundle=new Bundle(); for(in

文档评论(0)

cj80011 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档