Java 归还一只朱鹭
嗨,我是android新手,我需要知道下面突出显示的关于IBinder的代码中到底发生了什么,为什么我们要使用内部类来实现这个目的Java 归还一只朱鹭,java,android,Java,Android,嗨,我是android新手,我需要知道下面突出显示的关于IBinder的代码中到底发生了什么,为什么我们要使用内部类来实现这个目的 public class MyRandomService extends Service { private class LocalBinder extends Binder { MyRandomService getService() { return MyRandomService.this; }
public class MyRandomService extends Service {
private class LocalBinder extends Binder {
MyRandomService getService() {
return MyRandomService.this;
}
}
private LocalBinder localBinder = new LocalBinder();
@Override
public IBinder onBind(Intent intent) {
return localBinder;
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
stop_random_number_generator();
}
}
它是一个内部类,因此可以轻松返回外部服务实例。您可以将其设置为外部类 从这里开始:
IBinder: 要创建绑定服务,必须定义接口,该接口指定客户端如何与服务通信。服务和客户端之间的这个接口必须是IBinder的实现,并且是服务必须从onBind()回调方法返回的接口。客户端接收到IBinder后,就可以开始通过该接口与服务交互 onBind(): 当另一个组件希望与服务绑定(例如执行RPC)时,系统通过调用bindService()调用此方法。在这个方法的实现中,您必须提供一个接口,客户端使用该接口通过返回IBinder与服务通信。您必须始终执行此方法;但是,如果不希望允许绑定,则应返回null 更多信息