bundle.putString(“name”,“Scc”);
message.setData(bundle);
try {
mService.send(message);
} catch (RemoteException e) {
e.printStackTrace();
}
break;
}
}
@Override
protected void onStop() {
super.onStop();
if (bound) {
unbindService(connection);
bound = false;
}
}
}
🌀 运行效果如下
两个进程也存在着,也完成了进程间的通信,并把数据传递过去了。
💥 实例(Server将数据传回Client)
我不仅想将消息传递给 Server ,还想让 Server 将数据处理后传会Client。
🌀 MessengerService.java
public class MessengerService extends Service {
/** 用于显示和隐藏我们的通知。 */
ArrayList mClients = new ArrayList();
/** 保存客户端设置的最后一个值。 */
int mValue = 0;
/**
* 数组中添加 Messenger (来自客户端)。
* Message 的 replyTo 字段必须是应该发送回调的客户端的 Messenger。
*/
public static final int MSG_REGISTER_CLIENT = 1;
/**
* 数组中删除 Messenger (来自客户端)。
* Message 的 replyTo 字段必须是之前用 MSG_REGISTER_CLIENT 给出的客户端的 Messenger。
*/
public static final int MSG_UNREGISTER_CLIENT = 2;
/**
* 用于设置新值。
* 这可以发送到服务以提供新值,并将由服务发送给具有新值的任何注册客户端。
*/
public static final int MSG_SET_VALUE = 3;
//让客户端向IncomingHandler发送消息。
Messenger messenger = null;
//当绑定到服务时,我们向我们的Messenger返回一个接口,用于向服务发送消息。
public IBinder onBind(Intent intent) {
MLog.e(“MessengerService-onBind”);
//创建 Messenger 对象(对 Handler 的引用)
messenger = new Messenger(