Android 跨进程通信(一)
来源:互联网 发布:东方财富炒股软件 编辑:程序博客网 时间:2024/04/30 23:02
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); } @Override protected 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() { } @Override public void onReceive(Context context, Intent intent) { LogUtil.debug("on receive is run"); String data = intent.getStringExtra("data"); LogUtil.debug("data is " + data); }}
0 0
- Android 跨进程通信(一)
- android跨进程通信(一)
- Android跨进程通信一 Messenger
- Android跨进程通信一 Messenger
- android 跨进程通信
- Android 跨进程通信
- Android跨进程通信
- Android跨进程通信
- Android跨进程通信
- Android跨进程通信
- Android跨进程通信
- Android跨进程通信
- android Messenger 跨进程通信
- android Messenger 跨进程通信
- Android跨进程通信-AIDL
- Android Messenger 跨进程通信!!!!!!!!!!!!!!!!!!
- Android跨进程通信-AIDL
- android Service 跨进程通信
- Android全局异常捕获
- 倍数表达法用法归纳
- tjut 2871
- 孤儿进程与僵尸进程
- 1898: [Zjoi2005]Swamp 沼泽鳄鱼
- Android 跨进程通信(一)
- CUDA入门基本概念简介
- Tomcat-001-一个简单的web服务器
- Spring+Spring MVC+myBatis整合详细步骤
- Java开发揭开socket编程的面纱
- Java虚拟机(八)——Java内存模型
- Android 7.0新特性——依然范特西
- verilog 捕捉上升沿下降沿
- 51单片机的几种精确延时