如果你觉得写aidl比较麻烦,android还简单封装了一个 Messenger api,可以进行简单的跨进程通信,不过我干android这么多年,从来没有见过有哪个项目用过这玩意儿,因为太麻烦,还不如直接用aidl简单感觉,如果你是初学者,早点弃坑

1。声明并实现一个service

        <service android:name=".MsgrIpcService"android:process=":msgr"></service>
package com.xbb.ipcdemo;import android.app.Service;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.Messenger;
import android.os.RemoteException;// ipc with Android Messenger api
public class MsgrIpcService extends Service {private final class IncomingHandler extends Handler {@Overridepublic void handleMessage(Message msg) {if (msg.what == Contract.Client.WHAT_TEXT) {Message message = Message.obtain(null, Contract.Client.WHAT_TEXT);Bundle bundle = new Bundle();bundle.putString("key_text", "msgr");message.obj = bundle;try {msg.replyTo.send(message);} catch (RemoteException e) {e.printStackTrace();}} else {super.handleMessage(msg);}}}final Messenger mMessenger = new Messenger(new IncomingHandler());@Overridepublic IBinder onBind(Intent intent) {return mMessenger.getBinder();}
}

3。在Activity中去bind一下

    private final Messenger clientMessenger = new Messenger(handler);private final ServiceConnection msgrConnection = new ServiceConnection() {@Overridepublic void onServiceConnected(ComponentName className, IBinder service) {serviceMessenger = new Messenger(service);Message msg = Message.obtain(null, Contract.Client.WHAT_TEXT);Bundle bundle = new Bundle();bundle.putString(“key_text”, "hello");msg.obj = bundle;msg.replyTo = clientMessenger;try {serviceMessenger.send(msg);} catch (RemoteException e) {e.printStackTrace();}}@Overridepublic void onServiceDisconnected(ComponentName className) {serviceMessenger = null;}};@Overrideprotected void onStart() {super.onStart();bindService(new Intent(MainActivity.this, MsgrIpcService.class), msgrConnection,Context.BIND_AUTO_CREATE);}

有什么难度吗,没有

android Messenger 用法,demo,helloworld相关推荐

  1. 使用WebRTC开发Android Messenger:第2部分

    这是一个由三部分组成的系列文章,内容涉及:利用WebRTC中的BUG和利用Messenger应用程序.本系列文章重点阐述了当应用程序不能应用于WebRTC补丁程序以及通信和安全问题通知中断时可能出问题 ...

  2. Android学习小Demo(9)一个To Do List的实现

    记得看过一篇文章,是说一个人临走之前,列下了想做的最后100件事情,然后拿着这张便签,一件一件地去实现.又想起乔布斯说,如果今天是你的最后一天,你会怎么过? 我有很多事情想做,想写很多的文章,但是时间 ...

  3. Android组件化demo实现以及遇坑分享

    首先贴出demo的github地址:GitHub - TenzLiu/TenzModuleDemo: android组件化demo 前言 前段时间看到最近一直很火的Android组件化然后就自己撸了一 ...

  4. Android Messenger跨进程通信相关学习总结

    Messenger是什么? Messenger是对AIDL的封装,AIDL又是基于Binder机制实现的,使用Messenger能使我们更简单的实现进程间通信 优势在于我们可以免于自己去定义.aidl ...

  5. QT 5.4.1 for Android Ubuntu QtWebView Demo

    QT 5.4.1 for Android Ubuntu QtWebView Demo 2015-5-15 目录 一.说明: 二.参考文章: 三.QtWebView Demo在哪里? 四.Qt Crea ...

  6. 【转】 Android - LayoutInflate用法

    [转自]http://blog.csdn.net/scut1135/article/details/7055461 通俗的说,inflate就相当于将一个xml中定义的布局找出来. 因为在一个Acti ...

  7. QMsgPack的用法DEMO

    QMsgPack的用法DEMO 引用单元文件: uses qstring, qmsgpack, qjson; 演示一: procedure TForm2.Button10Click(Sender: T ...

  8. 使用WebRTC开发Android Messenger:第3部分

    这是一个由三部分组成的系列文章,内容涉及:利用WebRTC中的BUG和利用Messenger应用程序.本系列文章重点阐述了当应用程序不能应用于WebRTC补丁程序以及通信和安全问题通知中断时可能出问题 ...

  9. Android 抽屉效果Demo

    2019独角兽企业重金招聘Python工程师标准>>> Android 抽屉效果Demo. 转载:http://www.adobex.com/android/source/detai ...

最新文章

  1. 大工18秋《c c 语言程序设计》,大工18秋《毕业论文(设计)写作指导》在线测试1.txt...
  2. 浅析如何才能提高网站的信息交互能力?
  3. python机器学习及实践_Python机器学习及实践
  4. matlab朴素贝叶斯手写数字识别_TensorFlow手写数字识别(一)
  5. oracle crs 命令,ORACLE RAC CRSCTL 命令使用 及 执行的用户
  6. extern “C“那些事
  7. Unity Transform bug
  8. sqlite3简单使用
  9. oracle表空间使用率统计查询
  10. SQLyog官网下载,SQLyog-12.4.2下载,SQLyog最新版下载,SQLyog Download
  11. 爬虫基础知识+Scrapy框架
  12. 电脑hosts文件位置
  13. broforce怎呢上机器人_杀戮尖塔机器人怎么玩 机器人卡组教学通关攻略
  14. 电商商品3d展示---插件spritespin
  15. PY-NumPy | 蓝色妖姬
  16. 《Kotlin 极简教程 》第6章 泛型
  17. vue项目通过url链接引入其他系统页面
  18. 最新前端面试知识点总结-2023(3w+字,长篇幅)
  19. Nginx-配置文件详解
  20. [开源]java版QQ机器人集成小黄鸡功能

热门文章

  1. css使英文强制换行
  2. 平流式沉淀池表面负荷怎么计算_平流沉淀池计算公式
  3. 音响器材输出、输入连接的平衡与非平衡接驳端口问题
  4. OPPO入股少儿编程教育平台编程猫 官网域名为纯字母域名codemao.cn
  5. redhat yum安装mysql8.0
  6. Zabbix的agent.ping 检测 : Zabbix agent on xxx is unreachable for N minutes
  7. java fx 事件处理_JavaFX - 事件处理( Event Handling)
  8. C/C++程序使用lu对象作为配置文件
  9. 养猫最新版小程序源码
  10. 【风之语.中途岛海战】