android进程间传递大量数据,Android AIDL进程间双向传递数据
AIDL 全称 Android Interface Definition Language(AndRoid 接口定义语 言),参数可以传递基本数据类型、String和BundleAIDL:双向传递Service:1.interface FirstAIDL{String getName();void setUser(String name, int age, char sex);}==>Reb
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(...) {}
}
}
更多推荐
所有评论(0)