现在的位置: 首页 > 综合 > 正文

android四大组件之一Service的startService()与bindService()区别?

2012年08月27日 ⁄ 综合 ⁄ 共 691字 ⁄ 字号 评论关闭

Service的startService()与bindService()区别?

 

答:使用startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了,服务仍然运行。使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的特点。

  •    startService()一般用于本地服务调用。
  •    bindService()一般用于远程服务调用。

     Android 中的Service使用了onBind 的方法去绑定服务,返回一个Ibinder对象进行操作,而我们要获取具体的Service方法的内容的时候,我们需要Ibinder对象返回具体的Service对象才能操作,所以说具体的Service对象必须首先实现Binder对象,这个样子的话我们才能利用bindService的方法对Service进行绑定,获取Binder对象之后获取具体的Service对象,然后才获取Service中的方法等等。所以我们需要注意的是bindService的方式去绑定服务获取的必定是实现了Binder的对象,所以这是我们必须使用Binder的方式去获取Service的方式而不是直接使用Service的类,这个是Android内部实现所约束的。

   BindService()中可以获取Binder对象之后获取具体的Service对象,调用Service中的方法。

文章参考(http://www.cnblogs.com/androidme/archive/2012/03/13/2393670.html)

 

抱歉!评论已关闭.