我需要暂停执行,直到我从数据库中获得响应。我该怎么做?

Posted

技术标签:

【中文标题】我需要暂停执行,直到我从数据库中获得响应。我该怎么做?【英文标题】:I need to pause the execution till I get response from my database. How do i do it? 【发布时间】:2022-01-06 05:23:56 【问题描述】:

我正在制作一个 android Java 应用程序。我有一个带有函数的类,它使用 Volley 从我的数据库中获取二维字符串数组。 由于我无法从我创建的函数中返回字符串数组(因为我使用的是 volley),所以我将它保存在静态另一个类的变量。

在我的主要活动中,我调用获取字符串数组的类并将其分配给静态变量。

问题是,在类接收到我的字符串数组之前,我的主要活动使用了二维数组,因为字符串数组是未定义的。它给了我一个空指针异常。

我需要先初始化字符串数组,然后将其用作我的主要活动。

【问题讨论】:

这能回答你的问题吗? Why does my function that calls an API return an empty or null value? 您能否提供一些您遇到问题的代码 【参考方案1】:

字符串数组的初始化应该在onResponse()上完成 如果您在主线程中进行了字符串数组初始化,您将收到上面提到的错误。您应该只在 volley 线程上调用字符串数组。

【讨论】:

我只在响应时初始化了 volley 数组,并将数组传递给静态类变量。在主线程中,我只访问该变量 你是否使用接口传递静态类变量? 不,我直接获取静态变量 这就是为什么你直接通过接口方法得到错误 我昨天运行了我的主要活动,它工作了

以上是关于我需要暂停执行,直到我从数据库中获得响应。我该怎么做?的主要内容,如果未能解决你的问题,请参考以下文章

暂停功能,直到承诺解决[重复]

如何暂停整个程序的执行,直到在 JAVA 中按下按钮?

在作业中暂停队列

暂停执行,直到从 tkinter 窗口收到用户输入

Unity:如何暂停执行直到函数终止,以便不跳过任何帧

有没有办法暂停获取直到获得地理位置?