java中的Binder方法

时间:2013-05-19 14:42:52

标签: java android

任何人都可以向我解释这个活页夹类和方法

 public class LocalBinder extends Binder 
{
    CC2540Service getService() 
    {
        return CC2540Service.this;
    }
}

@Override
public IBinder onBind(Intent arg0) 
{
    return binder;
}

private final IBinder binder = new LocalBinder();

我真的不明白这段代码

提前致谢

2 个答案:

答案 0 :(得分:2)

我猜测LocalBinder是CC2540Service的内部类。所以CC2540Service.this是指CC2540Service的实例。 所以它等同于这段代码

class A {
  A a = this;
  class B {
    A getA() {
      return a;
    }
  }
  B getB() {
    return new B();
  }
}

答案 1 :(得分:2)

要从服务发送和接收数据,您需要使用Binder对象。 名为CC2540Service的服务只是创建此对象,并在Activity尝试绑定到此服务时向其返回一个标记。

两个进程可以在一个进程之间传输数据的唯一方法是使用这些Binder令牌。在您的情况下,令牌通过return binder;

返回