标签: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
标签:service
原文地址:http://cm0425.blog.51cto.com/10819451/1943315