从不能有返回值的函数返回值

icomxhvb  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(420)

我正在等待(从ussd请求)检索一个值,以便返回它(getussd):

private String USSDResponse=null;

    //this function executes sometime in the future and cannot have a return value
    public void someFunction(String response){
        USSDResponse=response;
    }

    public String getUSSD() {
        while(USSDResponse==null){
            //something to do ?!
        }
        return USSDResponse;
    }

但是我不知道我应该做什么来延迟循环直到我得到响应。
示例:循环中有1秒的计时器延迟,但这会停止一切!
我不能在另一个方法(接收响应的方法)中返回,所以我必须在这里执行
这是这个问题的假定解决方案:telephonymanager sendussdrequest返回ussd响应
如果有更好的方法解决这个问题,那也太好了。

uz75evzq

uz75evzq1#

您可以使用java blockingqueue。http://tutorials.jenkov.com/java-util-concurrent/blockingqueue.html
制作人将是USSDREponse的回拨人。消费者将是您的代码,等待我们的响应。

相关问题