Android进阶:AIDL实现IPC使用详解(2)

public class RemoteService extends Service {      ...      @Override          public IBinder onBind(Intent intent) {              // Select the interface to return.  If your service only implements               // a single interface, you can just return it here without checking               // the Intent.               if (IRemoteService.class.getName().equals(intent.getAction())) {                  return mBinder;              }              if (ISecondary.class.getName().equals(intent.getAction())) {                  return mSecondaryBinder;              }              return null;          }                 /**         * The IRemoteInterface is defined through IDL         */          private final IRemoteService.Stub mBinder = new IRemoteService.Stub() {              public void registerCallback(IRemoteServiceCallback cb) {                  if (cb != null) mCallbacks.register(cb);              }              public void unregisterCallback(IRemoteServiceCallback cb) {                  if (cb != null) mCallbacks.unregister(cb);              }          };                 /**         * A secondary interface to the service.         */          private final ISecondary.Stub mSecondaryBinder = new ISecondary.Stub() {              public int getPid() {                  return Process.myPid();              }              public void basicTypes(int anInt, long aLong, boolean aBoolean,                      float aFloat, double aDouble, String aString) {              }          };             }  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyfxdg.html