android 四种跨进程通信

区分一下Linux的进程间通信的方式:管道,Binder,socket,共享内存;

android 四种跨进程通信_第1张图片

 

 

1.Intent(显示一般用于同一程序,隐式一般都是跨进程)

intent/Bundle支持传递类型:

1.八大基本数据类型

2.String、Character引用类型

3.实现了Serializable和Parcelable接口的对象

android 四种跨进程通信_第2张图片

action指动作,可以多个,但跳转的activity中的infiter一定要包含这个action;

category(0个或多个):比如指定默认登录主界面:CATEGORY_LAUNCHER;

data(只有一个)的scheme指的是前缀http等;

host指的是主机名google.com等

port指url端口号

android 四种跨进程通信_第3张图片

2.Content Provider

3.广播

4.AIDL

首先AIDL支持的类型有(没有Serializable对象):

八大基本类型;

String,Character,List,Map;

实现了Parcelable接口的对象;

 

步骤:

1.创建一个服务端(在OnBind方法中返回一个IBinder对象,这个对象是是通过AIDL接口名.Stub来得到的)

2.创建一个客户端;(在服务端调用OnBind方法后,客户端就可以和服务端连接了;怎么连?实现ServiceConnection类,里面也要用到AIDL接口名来获取各种服务端传过来的值(即把Binder对象转为ADIL接口))

3.创建AIDL接口文件(直接新建一个普通文件(New->File),取名为 ABXXXService.aidl的aidl后缀文件

 

首先,先创建一个service子类

android 四种跨进程通信_第4张图片

 客户端:

android 四种跨进程通信_第5张图片

AIDL文件:

android 四种跨进程通信_第6张图片

 

 

你可能感兴趣的:(android,基础)