使一个 Volley GET 请求阻塞

时间:2021-02-12 09:30:03

标签: android kotlin android-volley blocking

我正在为一个 Volley GET 请求苦苦挣扎。这需要阻塞(有时间限制),因为应用程序的其余部分依赖于数据。在我看来,请求已传递给 Android 操作系统 并因此在另一个线程中执行(我认为)。因此,它归结为拨打电话并等待答案(如果有的话)。

我正在使用 Kotlin Volley 发布的示例


    val queue = Volley.newRequestQueue(context)

    val stringRequest = StringRequest(Request.Method.GET, url,
                    { response ->
                        getres = response
                    },
                    {
                        getres = "Error"
                    })
                    
    queue.add(stringRequest)

“getres”是一个全局变量。

我曾尝试在 queue.add 之后简单地放置一个简单的延迟,但这似乎暂停了请求 线程,所以不会改变任何东西。

我尝试在 queue.add 之后使用计时器:

Handler().postDelayed({
    // code goes here
}, 300)

但是定时器在它自己的线程中运行,所以如果你把它全部放到一个函数中 该函数将在请求结果返回之前退出,但是数据 .postDelayed 代码执行时出现。

一定有办法做到这一点,但我现在可以看到。我是新手 在 Android 和 Kotlin 上,所以请允许任何答案。我看到了一些答案 但它们都是用 Java 编写的。

感谢收到任何答案。

谢谢

0 个答案:

没有答案
相关问题