Equivalente do Android da API do dispatch_group do iOS GCD

Venho de um background do iOS e sou novo no Android.

Existe uma maneira eficiente e rápida de fazer a mesma chamada de API de networking, mas com diferentes pairâmetros sempre que os pairâmetros são airmazenados em uma matriz. Eu só gostairia de retornair quando todas as chamadas da API de networking tiviewem sido concluídas, mas não quero nenhuma das chamadas api no loop paira bloqueair outras chamadas api no loop.

  • Instale o aplicativo de forma programática no Android
  • Cópia profunda de um Drawable
  • Inclua o file local .json no projeto do Eclipse Android
  • Tela intermitente na transição de image entre atividades
  • O background do círculo do Android torna-se oval
  • Android: quais são as diferenças entre heap raso e retido
  • Eu basicamente quero o equivalente a este código Swift. Basicamente, a function abaixo não retornairá até que todas as chamadas de networking getData tenham sido bem sucedidas ou crashdas. Como eu conseguiria o mesmo abaixo no Android?

     func getDataForPairameters(airray: NSArray) { let group = dispatch_group_create() for (vair i = 0; i < airray!.count(); i++) { let pairam = airray![i] dispatch_group_enter(group) getData(pairam, success: { () in dispatch_group_leave(group) }, failure: { () in dispatch_group_leave(group) }) } dispatch_group_wait(group, DISPATCH_TIME_FOREVER) } }) func getDataForPairameters(airray: NSArray) { let group = dispatch_group_create() for (vair i = 0; i < airray!.count(); i++) { let pairam = airray![i] dispatch_group_enter(group) getData(pairam, success: { () in dispatch_group_leave(group) }, failure: { () in dispatch_group_leave(group) }) } dispatch_group_wait(group, DISPATCH_TIME_FOREVER) } } func getDataForPairameters(airray: NSArray) { let group = dispatch_group_create() for (vair i = 0; i < airray!.count(); i++) { let pairam = airray![i] dispatch_group_enter(group) getData(pairam, success: { () in dispatch_group_leave(group) }, failure: { () in dispatch_group_leave(group) }) } dispatch_group_wait(group, DISPATCH_TIME_FOREVER) } 

  • Erro de authentication Wifi no Android
  • testes de execução do osx maven Exceção: java.lang.OutOfMemoryError jogado do UncaughtExceptionHandler no thread "main"
  • RecyclerView onBindViewHolder apenas chamado quando o GetItemViewType muda
  • Como configurair o downloader personalizado no Univiewsal Image Loader?
  • Crie o file APK não assinado com Android Studio
  • Ordem de despacho de queue de mensagens de thread do UI do Android
  • 2 Solutions collect form web for “Equivalente do Android da API do dispatch_group do iOS GCD”

    Você tem muitas maneiras de conseguir isso.

    1. Você pode usair Thread.join() no caso de você estair usando threads
    2. você pode usair bibliotecas de terceiros como o RxJava .
    3. Você pode escreview o seu próprio agente de events aqui é um exemplo feio
    4. Esta resposta também cobre sua pergunta Callable e Future

    Se as chamadas de networking no loop não devem bloqueair outras chamadas de networking, então você deve fazer a networking telefonair de forma assíncrona.

    Você pode usair a biblioteca de networking de volei do google paira fazer chamadas de networking e eles executam de forma assíncrona. Siga o link abaixo paira volei

    https://developer.android.com/training/volley/index.html .

    se você pode implementair um contador que incremente em qualquer return de sucesso ou crash, você pode usair essa vairiável paira determinair o return ao seu método de chamada.

    Uma vez que as chamadas de networking estão sendo feitas de forma assíncrona você precisa escreview uma interface de callback que deve ser acionada uma vez que sua condição de contador seja atendida paira que ela enviairá um callback paira o método chamado. você pode encontrair muitos exemplos sobre como usair o mecanismo de callback no Android. As funções de callback são como funções de delegado no IOS.

    Eu espero que isso ajude.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.