android Messenger 用法,demo,helloworld
如果你觉得写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相关推荐
- 使用WebRTC开发Android Messenger:第2部分
这是一个由三部分组成的系列文章,内容涉及:利用WebRTC中的BUG和利用Messenger应用程序.本系列文章重点阐述了当应用程序不能应用于WebRTC补丁程序以及通信和安全问题通知中断时可能出问题 ...
- Android学习小Demo(9)一个To Do List的实现
记得看过一篇文章,是说一个人临走之前,列下了想做的最后100件事情,然后拿着这张便签,一件一件地去实现.又想起乔布斯说,如果今天是你的最后一天,你会怎么过? 我有很多事情想做,想写很多的文章,但是时间 ...
- Android组件化demo实现以及遇坑分享
首先贴出demo的github地址:GitHub - TenzLiu/TenzModuleDemo: android组件化demo 前言 前段时间看到最近一直很火的Android组件化然后就自己撸了一 ...
- Android Messenger跨进程通信相关学习总结
Messenger是什么? Messenger是对AIDL的封装,AIDL又是基于Binder机制实现的,使用Messenger能使我们更简单的实现进程间通信 优势在于我们可以免于自己去定义.aidl ...
- 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 ...
- 【转】 Android - LayoutInflate用法
[转自]http://blog.csdn.net/scut1135/article/details/7055461 通俗的说,inflate就相当于将一个xml中定义的布局找出来. 因为在一个Acti ...
- QMsgPack的用法DEMO
QMsgPack的用法DEMO 引用单元文件: uses qstring, qmsgpack, qjson; 演示一: procedure TForm2.Button10Click(Sender: T ...
- 使用WebRTC开发Android Messenger:第3部分
这是一个由三部分组成的系列文章,内容涉及:利用WebRTC中的BUG和利用Messenger应用程序.本系列文章重点阐述了当应用程序不能应用于WebRTC补丁程序以及通信和安全问题通知中断时可能出问题 ...
- Android 抽屉效果Demo
2019独角兽企业重金招聘Python工程师标准>>> Android 抽屉效果Demo. 转载:http://www.adobex.com/android/source/detai ...
最新文章
- 大工18秋《c c 语言程序设计》,大工18秋《毕业论文(设计)写作指导》在线测试1.txt...
- 浅析如何才能提高网站的信息交互能力?
- python机器学习及实践_Python机器学习及实践
- matlab朴素贝叶斯手写数字识别_TensorFlow手写数字识别(一)
- oracle crs 命令,ORACLE RAC CRSCTL 命令使用 及 执行的用户
- extern “C“那些事
- Unity Transform bug
- sqlite3简单使用
- oracle表空间使用率统计查询
- SQLyog官网下载,SQLyog-12.4.2下载,SQLyog最新版下载,SQLyog Download
- 爬虫基础知识+Scrapy框架
- 电脑hosts文件位置
- broforce怎呢上机器人_杀戮尖塔机器人怎么玩 机器人卡组教学通关攻略
- 电商商品3d展示---插件spritespin
- PY-NumPy | 蓝色妖姬
- 《Kotlin 极简教程 》第6章 泛型
- vue项目通过url链接引入其他系统页面
- 最新前端面试知识点总结-2023(3w+字,长篇幅)
- Nginx-配置文件详解
- [开源]java版QQ机器人集成小黄鸡功能
热门文章
- css使英文强制换行
- 平流式沉淀池表面负荷怎么计算_平流沉淀池计算公式
- 音响器材输出、输入连接的平衡与非平衡接驳端口问题
- OPPO入股少儿编程教育平台编程猫 官网域名为纯字母域名codemao.cn
- redhat yum安装mysql8.0
- Zabbix的agent.ping 检测 : Zabbix agent on xxx is unreachable for N minutes
- java fx 事件处理_JavaFX - 事件处理( Event Handling)
- C/C++程序使用lu对象作为配置文件
- 养猫最新版小程序源码
- 【风之语.中途岛海战】