进程间通信Messenger

进程间通信,不同进程他们所处的虚拟机不同(一个进程是一个虚拟机),他们之间的通信也就因此变得有趣起来。

常见的进程通信方式

 1、通过Messenger传递message(曾经写过一篇文章当时对Messenger理解错的一塌糊涂),它的的底层仍然是AIDL

 2、文件的存储(这种思想很简单,就像考试作弊一样,你把答案写在小纸条,我去拿小纸条,你的信息我就获得了,这里存在一个问题,并发的问题。另外一点SharedPreferences,因为它存在缓存策略,不可共享数据)

3、内容提供者

4、AIDL

5 、Socket

这篇文章只讲下Messenger,看下Messenger源码

public Messenger(Handler target) {
        mTarget = target.getIMessenger();
    }
 public Messenger(IBinder target) {
        mTarget = IMessenger.Stub.asInterface(target);
    }

从这两个构造方法看到有AIDL的痕迹的。

Messenger实现了Parcelable主要方法包括一下这些方法


它的使用就比较简单,下面有个demo,为了验证是进程间通信别忘了在注册service是进程的声明,总感觉讲的不够透彻,只可惜我就了解这么多,等感觉去少了什么,在往上添加吧

看下demo的运行结果



Demo下载



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值