android进程间传递大量数据,Android AIDL进程间双向传递数据

本文详细介绍了Android Interface Definition Language (AIDL) 的使用,展示了如何通过AIDL实现Service的双向通信。内容包括AIDL的基本概念、参数类型以及如何创建和注册Service。同时,还给出了客户端如何绑定Service并调用其方法的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AIDL 全称 Android Interface Definition Language(AndRoid 接口定义语 言),参数可以传递基本数据类型、String和Bundle

AIDL:双向传递

Service:

1.interface FirstAIDL{

String getName();

void setUser(String name, int age, char sex);

}

==>Rebuild

2.public class AIDLService extends Service {

private FirstAIDL.Stub stub = new FirstAIDL.Stub() {

...    //    get、set

};

public IBinder onBind(Intent intent) {    return stub;    }

}

注册Service:

Client:

1.project拷贝Service aidl包    ==>Rebuild

2.MainActivity——>onCreate(){

//通过服务的隐式意图跳转方式开启服务

Intent intent = new Intent("service的action名");

intent.setPackage("service应用的包名");

bindService(intent, new MyConnection(),BIND_AUTO_CREATE);

}

class MyConnection implements ServiceConnection {

public void onServiceConnected(ComponentName name, IBinder service) {

FirstAIDL firstAidl = FirstAIDL.Stub.asInterface(service);

try {

String username = firstAidl.getName();

firstAidl.setUser("小米", 18, 'm');

} catch(...) {}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值