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

时间:2021-07-04 09:15:18

标签: java android android-studio asynchronous

我正在等待(从 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 return USSD response

如果有更好的方法来解决这个问题,那就太好了。

1 个答案:

答案 0 :(得分:0)

您可以使用 Java BlockingQueue。 http://tutorials.jenkov.com/java-util-concurrent/blockingqueue.html

生产者将是 USSDResponse 的回调。 消费者将是您等待 USSDResponse 的代码。

相关问题