Android-跨进程通信之Messenger

熟悉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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值