Android AIDL进程间双向传递数据

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:

<Service android:name=".AIDLService">

    <intent-filter>

        <action android:name="service名字(全小写)"/>

    </intent-filter>

</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(...) {}

    }

}

转载于:https://my.oschina.net/glfei/blog/3027439

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值