温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android基础(八) – Service AIDL

发布时间:2020-10-24 16:25:30 来源:网络 阅读:321 作者:lm8751 栏目:移动开发

AIDL大多情况用于不同应用之间通信. (eg: A应用调用B应用的播放视频功能)

第一步:然后建立AIDL,通过点击建立AIDL文件,如图

Android基础(八) – Service 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);


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI