下面列出了android.os.Messenger#getBinder ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* Returns true if the messenger object is valid.
* <p>
* The messenger constructor and unparceling code does not check whether the
* provided IBinder is a valid IMessenger object. As a result, it's possible
* for a peer to send an invalid IBinder that will result in crashes downstream.
* This method checks that the messenger is in a valid state.
* </p>
*/
public static boolean isValidRemoteMessenger(Messenger messenger) {
try {
return messenger != null && messenger.getBinder() != null;
} catch (NullPointerException ex) {
// If the messenger was constructed with a binder interface other than
// IMessenger then the call to getBinder() will crash with an NPE.
return false;
}
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
Log.d(TAG, "onBind: " + intent.toString());
if (ACTION_C2DM_REGISTER.equals(intent.getAction())) {
Messenger messenger = new Messenger(new PushRegisterHandler(this, database));
return messenger.getBinder();
}
return super.onBind(intent);
}
@Override
public IBinder onBind(Intent intent) {
Messenger messenger = new Messenger(new SockHandler());
return messenger.getBinder();
}
@Override
public IBinder onBind(Intent intent) {
mMessenger = new Messenger(new IncomingHandler(getApplicationContext()));
return mMessenger.getBinder();
}
@Override
public IBinder onBind(Intent intent) {
mMessenger = new Messenger(new IncomingHandler(getApplicationContext()));
return mMessenger.getBinder();
}
@Override
public IBinder onBind(Intent intent) {
mMessenger = new Messenger(new IncomingHandler(getApplicationContext()));
return mMessenger.getBinder();
}
public boolean hasMessenger(Messenger other) {
return mMessenger.getBinder() == other.getBinder();
}