android 使用AIDL实现进程间通讯

一、创建服务端

 

1、首先创建AIDL文件

 

2、创建service,绑定AIDL接口

3、配置service

<service android:name=".AidlService"
    android:enabled="true"
    android:exported="true"
    >
    <intent-filter android:priority="1000">
        <action android:name="AIDL.service"></action>
    </intent-filter>
</service>

 

4、开启service和打开ServiceConnection

Intent intent=new Intent(getApplicationContext(),AidlService.class);
bindService(intent,serviceConnection,BIND_AUTO_CREATE);

 ----------------------------------------服务端创建完毕-------------------------------------------------------------

 

二、创建客户端

1、同样开始创建AIDL文件——与服务端的AIDL文件一样(复制即可)

 

2、创建serviceConnection

private ServiceConnection serviceConnection=new ServiceConnection() {
    @Override
    public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
        Toast.makeText(getApplicationContext(),"已连接服务器",Toast.LENGTH_LONG).show();
        iAidlInterface=IAidlInterface.Stub.asInterface(iBinder);
        try {
            iAidlInterface.asBinder().linkToDeath(mDeathRecipient, 0);
            iAidlInterface.registerCallBack(iAidlCallBack);
            messages.addAll(iAidlInterface.getMessages());
            listView.setAdapter(arrayAdapter=new ArrayAdapter<>(getApplicationContext(),android.R.layout.simple_list_item_1,messages));
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onServiceDisconnected(ComponentName componentName) {

    }
};

3、开启绑定服务端的service连接serviceConnection

Intent intent=new Intent();
String ACTION = "AIDL.service";
intent.setAction(ACTION);
intent.setPackage("com.dlc.mytestttt");
bindService(intent,serviceConnection,BIND_AUTO_CREATE);

demo实现:https://download.csdn.net/download/meixi_android/12347788

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值