を使用しMessenger
て、サービスとメイン アプリケーションの間で情報を渡すことができます。
次のように、メイン アクティビティでメッセンジャーを定義します。
private Messenger = mMessengerCliente = new Messenger(new IncomingHandler());
/**
* Handler of incoming messages from service.
*/
private class IncomingHandler extends Handler {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_1:
//actions to perform on message type 1
break;
case MSG_2:
//actions to perform on message type 2
break;
default:
super.handleMessage(msg);
}
}
}
サービスにバインドするときに、Messenger
オブジェクトをor として渡します。Extra
サービスで、オブジェクトを回復し、Messenger
それを使用して通信を返します。
mMsgClientMain = (Messenger)intent.getExtras().get(EXTRA_MESSENGER);
Message msg = Message.obtain(null, MSG_1, arg1, arg2);
msg.replyTo=reply_to; // if you need to have bidirectional communication, pass here the service messenger object
mMsgClientMain.send(msg);
よろしく。