Android四大组件之service

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android四大组件之service相关的知识,希望对你有一定的参考价值。

    活动绑定服务并在活动里调用服务的方法。

        如果直接在活动里new了一个服务的对象,是不能调用服务的方法的,因为这个时候服务还没有启动,这个时候需要在activity里调用bindService方法,使activity与服务绑定,绑定服务后,会自动调用服务里的OnBind()方法,返回一个Binder对象给activity使用,通过该对象来调用service里的方法。

   OnBind()
  当组件调用bindService()想要绑定到service时(比如想要执行进程间通讯)系统调用此方法.在你的实现中,你必须提供一个返回一个IBinder来以使客户端能够使用它与service通讯,你必须总是实现这个方法,但是如果你不允许绑定,那么你应返回null. 


    之前一直不理解bindService()方法的原理,下面来写一下自己的理解:

    1、在service里,新建一个内部类MyBinder extends Binder,在这个类里实现与service的通信方法。同时service里有个onBind() 方法,该方法只有在activity调用bindService()时才会执行,返回一个binder对象,即在service里创建的那个内部类MyBinder的对象。

    2、在activity中调用bindService对象时,新建的那个匿名内部类,new ServiceConnect(){

} 这里的onServiceConnect(ComponentName name, IBinder service)这里参数里的service即我们在service的onBinder()方法里返回的那个对象。

        借着这个service对象,就可以操做Service服务里的方法了。

本文出自 “YuanGuShi” 博客,请务必保留此出处http://cm0425.blog.51cto.com/10819451/1943315

以上是关于Android四大组件之service的主要内容,如果未能解决你的问题,请参考以下文章

Android四大组件之service

android 四大组件之---Service

Android四大组件之Service

Android四大组件service之Bound Service

Android安卓四大组件之Service

android 四大组件之Service 结合通知