Questo dovrebbe avere una risposta facile, ma non ho potuto trovare nessuno. E visto che sono ancora un maniaco di Android sono venuto qui per chiederti alla gente.Esiste un limite di AsyncTasks per essere eseguito nello stesso momento?
Ho realizzato questo progetto che esegue 10 AsyncTasks all'avvio. Ogni attività contiene 3 URL che raccolgono dati e non fanno nulla di importante nell'app (ancora).
Ho anche 10 visualizzazioni di testo che uso per tenere traccia dello stato di avanzamento dei AsyncTasks.
Quando un'attività avvia il TextView appropriata è messo su "Start" Quando un'attività sta procedendo imposta la sua TextView opportuno "Download" Quando un'attività è finito imposta la sua TextView opportuno "Finito"
Questo è quello che ho osservato e sono venuto a domande su AsyncTask. Quando avvio l'app, noto che 5 delle visualizzazioni di testo sono passate al marker "Download", quindi vedo 5 AsyncTask che fanno il loro lavoro come dovrebbero. Al termine, avvia un nuovo AsyncTask. Tuttavia non raggiungono mai il limite di 5.
Che cosa causa questo limite di 5 AsynchTasks in esecuzione allo stesso tempo? Ho causato questo in qualche file che non riesco a trovare? È un limite di Android 2.3.3? Forse un limite del dispositivo che sto utilizzando per sim l'app?
Qualcuno può elaborare per me?
Questa domanda è indirizzata qui: http://stackoverflow.com/questions/3077461/asynctask-threads-never-die-android – jengelsma
@jengelsma Non proprio. È sicuramente correlato, ma il motivo per cui non va oltre il 5 è in qualche modo diverso dal perché non va mai sotto 5. Ha ancora a che fare con le dimensioni del pool principale, ma quella domanda/risposta non affronta il motivo per cui le dimensioni del core pool limiterebbero il numero di attività concorrenti a 5 quando la dimensione massima del pool è 128. – kabuko
Penso che tu stia utilizzando AsyncTask.execute() invece di AsyncTask.executeOnExecutor() –