Estou desenvolvendo um APP comercial, neste preciso carregar todos os clientes do estabelecimento, então eu faço uma requisição solicitando cada cliente, pois preciso mandar o Id deste na URL da requisição, até ai tudo bem, o problema é que quando faço por exemplo, requisição de 150 clientes funciona, isto resulta em 150 new AsyncTask().execute();.
Em um próximo cenário preciso requisitar 700 clientes, ou seja, 700 new AsyncTask().execute(); então preciso limpar da memória os que já foram concluídos, ja tentei
new AsyncTask().executeOnExecutor(Executors.newSingleThreadExecutor()); não tive sucesso.
- Como estou chamando novamente o Async atualmente:
Eu tenho um ArrayList que contem os ID dos clientes que eu necessito ‘pegar’ ,(tenho um EndPoint que me retorna os IDs de Clientes que posso ‘pegar’), então a cada sincronização mando a posição 0 desse array como parâmetro, então vai o ID do cliente ao final removo a posição 0 e faço uma verificação se ainda exite cliente sem sincronizar.
Código do OnPostExecute():
clientesAguardandoSincronizar.remove(0);
mAsyncCliente = null;
if(clientesAguardandoSincronizar.size()>0){
//Executa novamente o Async de Clientes para trazer um a um.
mAsyncCliente = new AsyncCliente(context).execute();
}else{
//Executa proxima AsyncTask.
}