AIDL大多情况用于不同应用之间通信. (eg: A应用调用B应用的播放视频功能)
第一步:然后建立AIDL,通过点击建立AIDL文件,如图
第二步:在新建的AIDL文件里 写协议接口
interface IMyAidlInterface {
void downLoad(String path);
//....
}
第三步:确认包名无误的情况下 点build -> Make Project
第四步:在提供服务的Service 里 添加
IMyAidlInterface.Stub ms = new IMyAidlInterface.Stub() {
@Override
public void downLoad(String path) throws RemoteException {
Log.e(TAG,"开始下载 -->" + path);
}
};
同时修改
@Override
public IBinder onBind(Intent intent) {
//可取调用者传递 intent
return ms;
}
第五步:调用者 将aidi文件copy到工程下 ,然后用BindService的方式连接即可,如下:
bindService(binderIntent, new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
myServiceAIDL = IMyAidlInterface.Stub.asInterface(service);
try {
//通过AIDL远程调用
Log.d(TAG,"++start download++");
myServiceAIDL.downLoad("abc");
} catch (RemoteException e) {
e.printStackTrace();
}
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
}, BIND_AUTO_CREATE);
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。