<span style="font-size:18px;">android 进程通信之messenger
一般跟另一进程的service通信可以采用,具体流程如下:
service 进程中,
1.实现messenger,
new Messenger(new Handler(){
实现handleMessage处理其他进程来的message请求,
并通过message的replyTo对象(Messenger)的send方法跟请求进程通信
})
2.实现onBind(Intent intent)方法返回messenger的binder对象,供其他进程获得以进行通信。
需要与service进程通信的进程假设为T,需要实现。
1.绑定service,获取到目标service的binder对象,并以关联Messenger(IBinder)
bindService(Intent(this,上面Service),ServiceConnection... )
2.使用Messenger的send方法跟目标Service进程message{此消息可以带replyto 以接收目标service的回复}通信。
3.如果2中有设置replyto对象,则replyto的实现可以参考service进程中的1.实现messenger.
Messenger 有两种构造函数:
public Messenger(Handler target) //需要接收消息时使用
public Messenger(IBinder target) { //从bindservice时的getBinder获取,给target service发送消息时使用。
mTarget = IMessenger.Stub.asInterface(target); -->target service的一个代理
}
简单sample可以参考 http://blog.csdn.net/chenfeng0104/article/details/7010244
</span>
android 进程通信之messenger
最新推荐文章于 2024-03-27 22:00:00 发布