Android-跨进程通信之Messenger

本文介绍了Android中通过Messenger实现跨进程通信的方式,包括服务端创建Handler和Messenger,客户端绑定服务并发送消息的步骤。还解析了Messenger通信的原理,涉及IMessenger、Handler的内部类MessengerImpl以及IBinder的使用,揭示了Messenger跨进程通信依赖于IBinder机制。
摘要由CSDN通过智能技术生成

熟悉Android的开发人员应该都知道,实现不同进程之间通信的方法有5种:
1.通过Bundle/Intent传递数据;
2.通过aidl;
3.通过Messenger;
4.通过ContentProvider;
5.通过socket。
其中1,2,3,4的本质都是通过binder机制来实现的,5是通过网络套接字。

这里主要介绍下第三种方法,通过Messenger实现进程通信。

一. Messenger的使用
通过Messenger来实现进程通信是很简单的,省去了编写aidl代码这部分的工作,全部由系统帮我们封装好了。
步骤:
1、服务端
(1)创建一个服务类TestService,继承自Service。
(2)在TestService中创建一个Handler实例,并重写方法handleMessage:

private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
        //TODO
        }
}

(3)在TestService中创建Messenger实例,并传入上面创建的Handler实例
Messenger mMessenger = new Messenger(mHandler); //注意:服务端传入的参数是Handler的引用。
并在onBind方法中调用mM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值