【问题标题】: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),所以我将它保存在静态另一个类的变量。

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

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

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

【问题讨论】:

标签: java android multithreading java-threads


【解决方案1】:

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

【讨论】:

  • 我只在响应时初始化了 volley 数组,并将数组传递给静态类变量。在主线程中,我只访问该变量
  • 你是否使用接口传递静态类变量?
  • 不,我直接获取静态变量
  • 这就是为什么你直接通过接口方法得到错误
  • 我昨天运行了我的主要活动,它工作了
猜你喜欢
  • 2012-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-23
  • 1970-01-01
  • 1970-01-01
  • 2019-08-25
  • 2021-11-02
相关资源
最近更新 更多