Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 通过回调获得Aidl结果_Android_Aidl - Fatal编程技术网

Android 通过回调获得Aidl结果

Android 通过回调获得Aidl结果,android,aidl,Android,Aidl,我已经写了一个应用程序,其中记录了一些音频信号。此信号必须由安装在我的设备上的插件处理。对于主应用程序和插件之间的通信,我们使用aidl接口 由于我不熟悉这些接口,我想知道插件是否可以将结果返回到我的主应用程序: 我创建了一个界面: public interface MainAppCallback { public void onResult(String result); } 我在我的录制线程中实现它: MainAppCallback callback = new MainAppCa

我已经写了一个应用程序,其中记录了一些音频信号。此信号必须由安装在我的设备上的插件处理。对于主应用程序和插件之间的通信,我们使用aidl接口

由于我不熟悉这些接口,我想知道插件是否可以将结果返回到我的主应用程序:

我创建了一个界面:

public interface MainAppCallback {
    public void onResult(String result);
}
我在我的录制线程中实现它

MainAppCallback callback = new MainAppCallback() {
    @Override
    public void onResult(String result) {
        // Add result to member variable of recording thread
    }
};
PlugIn.registerCallback(callback);
在我的aidl接口中,我定义了插件的方法:

/** Callback to send results to main application
*/
void registerCallback(MainAppCallback callback);

/** The code is documentation enough
*/
void unregisterCallback();
然后,我想在我的录制线程中执行类似的操作:

MainAppCallback callback = new MainAppCallback() {
    @Override
    public void onResult(String result) {
        // Add result to member variable of recording thread
    }
};
PlugIn.registerCallback(callback);

这是正确的方法,还是我做错了什么?

没错。确保您也为回调接口定义了一个aidl文件

下面是一个答案,其中已经有一个回调所需的2个aidl文件的示例:


这里还有完整的示例代码:

前面已回答,完整的代码结构: