我写了一个记录一些音频信号的应用程序。此信号必须由安装在我的设备上的插件处理。对于主应用程序和插件之间的通信,我们使用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
}
};
在我的 aidl界面中,我定义了插件的方法:
/** Callback to send results to main application
*/
void registerCallback(MainAppCallback callback);
/** The code is documentation enough
*/
void unregisterCallback();
然后我想在录制话题:
中做类似的事情PlugIn.registerCallback(callback);
这是正确的方法,还是我在这里做错了什么?
答案 0 :(得分:1)
这是正确的。确保您也为回调接口定义了一个aidl文件。
这里有一个答案,它已经有一个你需要回调的2个aidl文件的例子: Android remote service callbacks
此处还有完整的示例代码:https://developer.android.com/guide/components/aidl.html