如何处理 Android Java 上的异步?
Posted
技术标签:
【中文标题】如何处理 Android Java 上的异步?【英文标题】:How to handle asynchronicity on Android Java? 【发布时间】:2021-05-28 14:42:04 【问题描述】:我正在使用 OkHttp 向服务器发送 REST 请求,并且响应是异步返回的。由于 Java 主要是一种服务器端语言,因此处理异步返回的概念对我来说是模糊的。
例如,我要发送3个请求A、B和C。收到它们的全部3个返回后,我将在移动应用程序上执行操作D。
我用这样的回调做到了:
do
run A asynchronously; A returns;
-> run B asynchronously; B returns
-> run C asynchronously; C returns
-> run D synchronously;
可视化:应该是这样的:
do
run A asynchronously;
run B asynchronously;
run C asynchronously;
await (A, B, C all returned)
run D synchronously;
我该如何像上面那样在 javascript 上等待?
【问题讨论】:
不同的(额外的)框架使这种类型的事情变得更加可能,我不确定你是否可以只使用 Okhttp 来实现这一点,但是使用 Rxjava 你可以压缩这些操作 【参考方案1】:我正在使用Retrofit
,它使用OkHttp
使用协程怎么样?像这样的方法?
GlobalScope.launch
responseA = async getAsynch1()
responseB = async getAsynch2()
responseC = async getAsynch3()
handleResponseA(responseA.await())
handleResponseB(responseB.await())
handleResponseC(responseC.await())
参考:链接https://proandroiddev.com/suspend-what-youre-doing-retrofit-has-now-coroutines-support-c65bd09ba067
【讨论】:
如果 OP 使用的是 java 就没有帮助,他们说他们是以上是关于如何处理 Android Java 上的异步?的主要内容,如果未能解决你的问题,请参考以下文章
如何处理 com.android.volley.NoConnectionError: java.net.UnknownHostException