Tôi đến từ nền iOS và tôi mới sử dụng Android.Tương đương với Android của iOS GCD dispatch_group API
Có cách nào hiệu quả và nhanh chóng để thực hiện cùng một cuộc gọi API mạng nhưng với các thông số khác nhau mỗi khi các thông số được lưu trữ trong một mảng. Tôi chỉ muốn quay trở lại khi tất cả các cuộc gọi API mạng đã hoàn thành, nhưng tôi không muốn bất kỳ cuộc gọi api nào trong vòng lặp chặn các cuộc gọi api khác trong vòng lặp.
Tôi về cơ bản muốn tương đương với mã Swift này. Về cơ bản, chức năng dưới đây sẽ không trở lại cho đến khi tất cả các cuộc gọi mạng getData
có thành công hoặc không thành công. Làm cách nào để tôi thực hiện điều tương tự bên dưới trong 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)
}
bạn có thể sử dụng ExecutorService để thực hiện một số tác vụ mà không chặn các cuộc gọi mạng khác – has19