esegui Vs executeOnExecutor [chiuso]

1

Ci sono due modi per eseguire AsynTask , cioè, execute e executeOnExecutor . So già che execute funziona in serie e executeOnExecutor funziona in parallelo. Quindi la mia domanda è:

  • Quale usare?
  • Qual è il migliore?
  • Qualcuno può aiutarmi a capire quale usare in quale situazione?
posta FaizanRabbani 25.12.2014 - 11:07
fonte

1 risposta

1

Nelle versioni recenti di Android, "esegui" farà sì che il tuo compito venga inserito in una coda da cui un singolo thread in background lo preleva e lo esegue; come dici tu, tali compiti sono eseguiti in serie (anche se non dovresti fare affidamento su questo, poiché le versioni precedenti di Android iniziarono un thread per ogni attività).

executeOnExecutor, tuttavia, offre un maggiore controllo, poiché è possibile utilizzare qualsiasi oggetto che implementa l'interfaccia di Executor per eseguire l'attività. Anche se ti limiti solo all'implementazione standard di ThreadPoolExecutor, ciò significa che puoi assumere il controllo di:

  • il numero massimo di attività che possono essere eseguite simultaneamente
  • il tipo e i parametri della coda utilizzata (ad esempio se la coda è limitata o non limitata)
  • il comportamento quando una nuova attività viene inviata mentre la coda è piena

Per la maggior parte degli scopi, execute è adeguato, ma dovresti usare executeOnExecutor quando hai bisogno di più controllo, sia perché un singolo thread non è sufficiente, o perché devi garantire di ottenere solo un thread quando usi versioni precedenti di Android, o perché hai un requisito inusuale su come vengono gestite le attività inviate.

    
risposta data 25.12.2014 - 21:48
fonte

Leggi altre domande sui tag