【发布时间】:2019-05-11 13:09:40
【问题描述】:
我正在尝试实现机制,这将让我等待函数完成(特别是返回调用),直到我在接收器中得到一些响应。接收方正在等待来自 API 的某些调用或其他一些耗时操作的响应。
我试图做一个在布尔标志(易失性)上运行的 while 循环,该标志应该在接收器中更改,但结果是循环永远运行并且标志永远不会改变。
我也尝试实现一个等待通知机制,而且,等待函数“阻止”接收者调用通知。
编辑:我也尝试使用 BlockingQueue,但也没有运气。
我在我的实现中附上了一些示例代码。
public String getRemoteInfo() {
getInfo();
while (!finished){
Uninterruptibles.sleepUninterruptibly(200, TimeUnit.MILLISECONDS);
}
return globalResult;
}
private void getInfo(){
service.getInfo(this); //"this" is an implementation of receiver
}
@Override
public void infoReceived(String result) {
globalResult = result;
finished = true;
}
【问题讨论】:
-
可能接口可以工作..
-
@AbhayKoradiya 实际上,由于其他一些架构原因,这个返回 String 的方法应该保持同步。我正在寻找延迟方法完成的方法(即使它冻结线程几秒钟)
标签: java android asynchronous callback async-await