软件发布| 专题库| 优优资讯| 苹果专区| 安卓专区| 软件下载| 首页
优优资讯 电脑教程 安卓教程 安卓攻略 苹果教程 苹果攻略 新闻资讯

Android开发:核心组件Service解析(二)

时间:2016-04-27 来源:本站整理 我要评论
欢迎来到优优下载站的编程开发专栏,今天为大家带来的是Android开发核心组件Service的文章,希望对您有帮助。除了这篇文章外,本站还有许多不同类型的文章供大家阅读,只要你输入关键字,再点击搜索。闲话不多说,一起来看看今天的内容吧!

第二种是通过绑定的方式来启动Service。先看流程图。

 

绑定的方式和第一节的方式最大的不同就是在于,Activity可以和Service实现关联,当被关联的Activity结束后,相应的Service 也会停止,同时在绑定了的Activity中我们还可以回调我们在Service中定义的方法。在这里我们使用了 this.bindService(intent, myServiceConnection, Context.BIND_AUTO_CREATE); 来启动Service,当Service创建了同时绑定了Activity之后,会回调我们定义的ServiceConnection(),从而传回IBinder接口,我们就能够调用Service中的方法了。这时候Activity就和 Service实现了绑定,Activity退出了Service就相应的退出了。Service的申明如下,intent filter 是对接收Service的过滤。


  1. <service android:enabled="true" android:name=".service.mediaplayer.BindMusicService"
  2. <intent-filter> 
  3. <action android:name="com.androidtest.service.mediaplayer.BindMusicService" /> 
  4. </intent-filter> 
  5. </service>  

当我们继想绑定一个Service又想在 Activity停止时,Service不会停止,我们可以先StartService,然后再BindService()。这时候的流程图如下所示:

 

 

此时需要注意一个问题,当Activity退出的时候,Sercvice并不会停止,此时我们可以再进入Activity重新绑定,当这时候 Service就会调用onRebind()方法,但是调用onRebind()方法的前提是先前的onUnbind()方法执行成功,但是使用 super.onUnbind(intent)是执行不成功的,这时候我们要手动的使其返回true,再次绑定时Rebind()就会执行。否则,如果退出时不显示的指定onUnbind()为成功的话(为false),那么重新启动此Activity来绑定服务时,Service的onBind()方法和onReBind都不会执行,但是ServiceConnection方法确一定会回调了。这说明在Service中的onBind()方法不同于 onStart()方法不能被重复调用。

本节代码和上节代码大致相同,只不过是在bind之前先start service ,大家可以在DDMS中看onUnbind() onRebind()的调用情况。

今天的文章到此结束,想要了解更多、更全面的编程开发技巧,请持续关注本站。
除了文章外,本站还拥有着许多不同类型的优质手机软件,大家都可以进行免费下载安装,相信本站定会为大家带来完美的下载体验!【优优软件下载站】

用户评论

(已有0条评论)
表情
注:您的评论需要经过审核才能显示哦,请文明发言!
还没有评论,快来抢沙发吧!
快速检索
0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z