我有一个界面
interface Methods {
void MethodX(int X);
void MethodY(int Y);
// ...
}
接口实现必须安排对阻塞队列中的接口方法的调用(以便按顺序执行调用)。有没有简单的方法可以做到这一点?
Something.post(...);
Where ...是一个围绕MethodZ的包装调用。
对接口的调用是非阻塞的(它是一个AIDL接口),但内部的每个下一个调用都应该在前一个调用完成之前执行。
答案 0 :(得分:0)
如果我理解你的问题,你可以尝试类似的事情:
class MethodZExecutor implements Callable<Void> {
private final Methods method;
private int argument;
public MethodZExecutor(Methods method, int argument) {
this.method = method;
this.argument = argument;
}
@Override
public Void call() {
method.MethodZ(argument);
return null;
}
}
然后创建阻止队列以保存Callable
个对象。从此队列中取消项目并在其上调用call()
。
注意:这可能都是使用匿名内部类发生的,具体取决于您的用例:
someQueue.post(new Callable<Void>() {
@Override
public Void call() {
foo.MethodZ(someArgument);
return null;
}
});
答案 1 :(得分:0)