Ho bisogno di eseguire un numero di AsyncTask
s e quindi raccogliere tutti i loro risultati, consolidare e quindi restituire il risultato finale al mio utente.Come utilizzare ExecutorService con Android AsyncTask?
Sto cercando un modo per gestire più AsyncTask
s in Android. Sto pensando di usare un ExecutorService
dal pacchetto Java Concurrency ma mi sono bloccato perché lo standard ExecutorService
prende SOLO i Runnables o i Callables. Per stabilire la mia esigenza posso usare il
ExecutorService.invokeAll((Collection<? extends Callable<T>> tasks)
Il metodo invokeAll()
restituirà un elenco di List<Future><V>>
solo quando tutte le attività presentate sono completate e posso ottenere i miei risultati per ogni attività dal suo corrispondente Future
.
Tutto va bene con ExecutorService
l'attesa per il fatto che non accetta AsyncTask
.
C'è un altro modo di utilizzare AsyncTask
e ExecutorService
o se è possibile, per favore, consigliare un approccio diverso.
La cosa buona è [AsyncTask] (http://developer.android.com/reference/android/os/AsyncTask.html) ha metodo executeOnExecutor(), la cosa brutta è che è disponibile solo dal livello API 11 – yorkw
Qualsiasi riferimento su come usare executeOnExecutor? Inoltre questa funzione è disponibile da HoneyComb (API Livello 11) ma il mio minSDK della mia app è 4. – AKh
Se insisti, dai un'occhiata alla mia risposta [qui] (http://stackoverflow.com/questions/7211684/asynctask-executeonexecutor-before- api-level-11/9509184 # 9509184). – yorkw