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 跨进程通信(一)相关推荐

  1. Android 跨进程通信大总结

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/111553746 本文出自[赵彦军的博客] 文章目录 1.Android进程 2.修 ...

  2. 【朝花夕拾】Android跨进程通信总结篇

    前言 原文:https://www.cnblogs.com/andy-songwei/p/10256379.html 只要是面试高级工程师岗位,Android跨进程通信就是最受面试官青睐的知识点之一. ...

  3. 【朝花夕拾】Android性能篇之(七)Android跨进程通信篇

    前言 转载请声明,转自[https://www.cnblogs.com/andy-songwei/p/10256379.html],谢谢! 只要是面试高级工程师岗位,Android跨进程通信就是最受面 ...

  4. 【朝花夕拾】Android性能篇之(七)Android跨进程通信篇...

    前言 原文:https://www.cnblogs.com/andy-songwei/p/10256379.html 只要是面试高级工程师岗位,Android跨进程通信就是最受面试官青睐的知识点之一. ...

  5. Android跨进程通信Binder机制与AIDL实例

    文章目录 进程通信 1.1 进程空间划分 1.2 跨进程通信IPC 1.3 Linux跨进程通信 1.4 Android进程通信 Binder跨进程通信 2.1 Binder简介 2.2 Binder ...

  6. Android跨进程通信一 Messenger

    实现客户端与服务端之间的交互 说明:         Messenger是信使的意思,从它的名字就可以了解到它充当着信差的角色.Android通过它实现跨进程通信,主要有客户端信使与服务端信使两种角色 ...

  7. Android - 跨进程通信(IPC) 另一种便捷实现 详解

    文章目录 1. 写在前面 2. 跨进程通信的实现 3. 扩展思考 4. 参考资料 1. 写在前面 看到此图有何感想,这是另一种便捷的实现方式,我们先来看看其它的几种方式. Android 进程间通信 ...

  8. 【Binder】Android 跨进程通信原理解析

    前言 在Android开发的过程中,用到跨进程通信的地方非常非常多,我们所使用的Activity.Service等组件都需要和AMS进行跨进程通信,而这种跨进程的通信都是由Binder完成的. 甚至一 ...

  9. Android跨进程通信

    一 多进程之间的通信 由于不同进程所拥有的地址是两块不同的地址空间,所以不能直接通过共享内存共享数据了. Linux常用跨进程通信方式:管道,信号量,共享内存,socket Android常用跨进程通 ...

最新文章

  1. python制作音乐模块_用Python打造一个只属于你的专属音乐播放器,享受动手的快乐!...
  2. 【机器学习】降维技术-PCA
  3. linux firefox 脚本,linux下调整firefox的有用设置(高分辨率下需要)
  4. stm32cubemx adc_STM32CubeMX__Exp5_ADC1_2CH_DMA_TIM3_Trig__简明指导文件__jyb
  5. 像亲和数一样亲密无间(洛谷P1851题解,Java语言描述)
  6. 2021年河南省高考成绩位次查询,2021年河南高考分数一分一段位次表,河南高考个人成绩排名查询方法...
  7. 虫食算(洛谷-P1092)
  8. Python:数据类型
  9. [Ext JS 4] 组件之图表
  10. flex布局演示(可线上运行项目)
  11. 【优化算法】水基湍流优化算法(TFWO) 【含Matlab源码 1585期】
  12. 软件测试(三)--标准的测试用例模板
  13. 解决:115网盘下载路径失败
  14. c语言1%3等于多少,%取余语句1%3等于多少的作用
  15. ImportError: DLL load failed while importing ie_api
  16. 外省职称计算机,外地职称在当地是否可以用?
  17. Linux环境:可变剪切分析软件rMATS安装、使用与解读
  18. python输入姓名输出欢迎你某某同学_2018-03-24 python 练习
  19. 2021最新Java面试笔试,Java篇
  20. Stacked Hourglass Networks - 堆叠沙漏网络结构详解

热门文章

  1. iOS —— XMPP 详解
  2. SQL_MODE设置之ansi_quotes
  3. 语音合成行业研究方法总结
  4. HP5135 thin client的简单设定
  5. c语言中合法语句但有bug语句,安全处理方式
  6. c语言监视窗口,如何在C中编写监视器代码?
  7. 解决vue打包之后页面白板跨域等问题
  8. C语言,进制转换之二进制转十六进制,完整代码
  9. 九、C++ 常量 Constants/Literals
  10. 《C++Primer》第十七章 标准库特殊设施