Android相当于iOS GCD dispatch_group API
我来自iOS的背景,对安卓系统还不熟悉 是否有一种高效快速的方法来进行相同的网络API调用,但每次在数组中存储参数时使用不同的参数。我只希望在所有网络API调用完成后返回,但我不希望循环中的任何API调用阻止循环中的其他API调用 我基本上想要这个Swift代码的等价物。基本上,在所有网络调用Android相当于iOS GCD dispatch_group API,android,multithreading,Android,Multithreading,我来自iOS的背景,对安卓系统还不熟悉 是否有一种高效快速的方法来进行相同的网络API调用,但每次在数组中存储参数时使用不同的参数。我只希望在所有网络API调用完成后返回,但我不希望循环中的任何API调用阻止循环中的其他API调用 我基本上想要这个Swift代码的等价物。基本上,在所有网络调用getData成功或失败之前,下面的函数不会返回。我将如何在Android中完成下面同样的事情 func getDataForParameters(array: NSArray) { let gro
getData
成功或失败之前,下面的函数不会返回。我将如何在Android中完成下面同样的事情
func getDataForParameters(array: NSArray) {
let group = dispatch_group_create()
for (var i = 0; i < array!.count(); i++) {
let param = array![i]
dispatch_group_enter(group)
getData(param, success: {
() in
dispatch_group_leave(group)
}, failure: {
() in
dispatch_group_leave(group)
})
}
dispatch_group_wait(group, DISPATCH_TIME_FOREVER)
}
func getDataForParameters(数组:NSArray){
let group=dispatch\u group\u create()
对于(var i=0;i
实现这一点的方法有很多
Thread.join()
Callable
和Future
如果循环中的网络调用不应阻止其他网络调用,则应异步进行网络调用 您可以使用google的volley网络库进行网络调用,并且它们异步执行。按照下面的链接截击 如果可以实现一个计数器,该计数器在成功或失败回调时递增,则可以使用该变量确定何时返回调用方法 由于网络调用是异步进行的,因此需要编写一个回调接口,一旦满足计数器条件,就会触发该接口,以便它向被调用的方法发送回调。你可以找到很多关于如何在Android中使用回调机制的例子。回调函数类似于IOS中的委托函数
我希望这会有所帮助。您可以使用ExecutorService执行多个任务,而不阻塞其他网络调用。这些都可以工作,但RxJava是这4个建议中最好的一个