Android 跨进程通信(一)
Android 跨进程通信
Android 本身提供一四种方式进行实现跨进程通信,他们也分别是Android的四大组件.分别是:Activity,Content Provider,Broadcast和Service.
Activity实现跨进程通信
以Activity方式实现跨进程通信,实现方式是最为简单的.比如应用A需要应用B提供的数据,就使用Intent调用应用B的Activty,再使用onActivityResult方式获取数据.
虽然说是最简单.但在实现是还是有很多种方式的.就像App内部跳转一样.可以使用action,uri,及类名方式,这里就先来一个最常简单Class方式,其它方式与应用内部调用差别不大,这里就不详细叙述了.
-这里是InovkeA
private void classInvoke() {Intent intent = new Intent();//需请求的App包名,Activty名,Activity需要写全名intent.setClassName("com.peng.study.appinvokeb", "com.peng.study.appinvokeb.InvokeBActivity");startActivityForResult(intent, CLASS_INVOKE);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == CLASS_INVOKE && resultCode == Activity.RESULT_OK) {LogUtil.debug(data.getStringExtra("data"));}}
数据接收处理与传统方式无区别.这里就先不写了.
Broadcast
Broadcast,即我们常说的广播.主要用于数据的单项传输,接收方再处理完数据后,无法直接将结果回送给数据的发送方,只能再次通过广播的方式回送数据.
广播的实现还是比较常用的,这里只例举一种比实简单的实现
广播发送方:
private void broadcastInvoke() {Intent intent = new Intent();intent.putExtra("data", "this is data");//只有和这个action一样的广播接收者可以收到广播intent.setAction("com.study.appinovkeb.data");sendBroadcast(intent);LogUtil.debug("send broadcast is success");}
广播接收方
在AndroidManifest.xml中注册广播接收器
<receiver android:name=".InvokeHandler"><intent-filter><action android:name="com.study.appinovkeb.data"></action></intent-filter></receiver>
广播处理
public class InvokeHandler extends BroadcastReceiver {public InvokeHandler() {}@Overridepublic void onReceive(Context context, Intent intent) {LogUtil.debug("on receive is run");String data = intent.getStringExtra("data");LogUtil.debug("data is " + data);}
}
Android 跨进程通信(一)相关推荐
- Android 跨进程通信大总结
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/111553746 本文出自[赵彦军的博客] 文章目录 1.Android进程 2.修 ...
- 【朝花夕拾】Android跨进程通信总结篇
前言 原文:https://www.cnblogs.com/andy-songwei/p/10256379.html 只要是面试高级工程师岗位,Android跨进程通信就是最受面试官青睐的知识点之一. ...
- 【朝花夕拾】Android性能篇之(七)Android跨进程通信篇
前言 转载请声明,转自[https://www.cnblogs.com/andy-songwei/p/10256379.html],谢谢! 只要是面试高级工程师岗位,Android跨进程通信就是最受面 ...
- 【朝花夕拾】Android性能篇之(七)Android跨进程通信篇...
前言 原文:https://www.cnblogs.com/andy-songwei/p/10256379.html 只要是面试高级工程师岗位,Android跨进程通信就是最受面试官青睐的知识点之一. ...
- Android跨进程通信Binder机制与AIDL实例
文章目录 进程通信 1.1 进程空间划分 1.2 跨进程通信IPC 1.3 Linux跨进程通信 1.4 Android进程通信 Binder跨进程通信 2.1 Binder简介 2.2 Binder ...
- Android跨进程通信一 Messenger
实现客户端与服务端之间的交互 说明: Messenger是信使的意思,从它的名字就可以了解到它充当着信差的角色.Android通过它实现跨进程通信,主要有客户端信使与服务端信使两种角色 ...
- Android - 跨进程通信(IPC) 另一种便捷实现 详解
文章目录 1. 写在前面 2. 跨进程通信的实现 3. 扩展思考 4. 参考资料 1. 写在前面 看到此图有何感想,这是另一种便捷的实现方式,我们先来看看其它的几种方式. Android 进程间通信 ...
- 【Binder】Android 跨进程通信原理解析
前言 在Android开发的过程中,用到跨进程通信的地方非常非常多,我们所使用的Activity.Service等组件都需要和AMS进行跨进程通信,而这种跨进程的通信都是由Binder完成的. 甚至一 ...
- Android跨进程通信
一 多进程之间的通信 由于不同进程所拥有的地址是两块不同的地址空间,所以不能直接通过共享内存共享数据了. Linux常用跨进程通信方式:管道,信号量,共享内存,socket Android常用跨进程通 ...
最新文章
- python制作音乐模块_用Python打造一个只属于你的专属音乐播放器,享受动手的快乐!...
- 【机器学习】降维技术-PCA
- linux firefox 脚本,linux下调整firefox的有用设置(高分辨率下需要)
- stm32cubemx adc_STM32CubeMX__Exp5_ADC1_2CH_DMA_TIM3_Trig__简明指导文件__jyb
- 像亲和数一样亲密无间(洛谷P1851题解,Java语言描述)
- 2021年河南省高考成绩位次查询,2021年河南高考分数一分一段位次表,河南高考个人成绩排名查询方法...
- 虫食算(洛谷-P1092)
- Python:数据类型
- [Ext JS 4] 组件之图表
- flex布局演示(可线上运行项目)
- 【优化算法】水基湍流优化算法(TFWO) 【含Matlab源码 1585期】
- 软件测试(三)--标准的测试用例模板
- 解决:115网盘下载路径失败
- c语言1%3等于多少,%取余语句1%3等于多少的作用
- ImportError: DLL load failed while importing ie_api
- 外省职称计算机,外地职称在当地是否可以用?
- Linux环境:可变剪切分析软件rMATS安装、使用与解读
- python输入姓名输出欢迎你某某同学_2018-03-24 python 练习
- 2021最新Java面试笔试,Java篇
- Stacked Hourglass Networks - 堆叠沙漏网络结构详解