我正在为一个 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 编写的。
感谢收到任何答案。
谢谢