Android基础(八)–ServiceAIDL
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);
本文标题:Android基础(八)–ServiceAIDL
新闻来源:http://hbruida.cn/article/jpdgjs.html