2011-09-28 12 views
10

Ho un app Android che ha cose separate in corso, ma sono tutte fondamentalmente le discussioni (e sicuramente sono discussioni al debugger Android)Android quanti thread posso avere?

ci sono più ascoltatori di animazione che loop e chiamano l'un l'altro

C'è un conto alla rovescia che è sempre il conto alla rovescia a zero dopo che è stato avviato

Ora ho bisogno di considerare l'aggiunta di altri timer conto alla rovescia. Quanti di questi tipi di processi di loop posso avere? In questa particolare implementazione non sono interessato alle prestazioni, all'efficienza, ecc., Finché non diventa evidente.

Insight apprezzato

risposta

7

Sarei molto sorpreso di apprendere che si esaurito il numero di thread si può tranquillamente utilizzare in un'applicazione Android, a patto che si sta adeguatamente la gestione dei loro ciclo di vita e prevenire "loop occupato" e la come da avvenimento.

Una cosa che ho imparato però, sono abbastanza sicuro che puoi avere 5 asynctask operativi in ​​qualsiasi momento, e continueranno arbitrariamente ad esistere e ad essere uccisi o rigenerati da soli se ne avvierai di nuovi ... cioè se Ho attivato un asynctask e poi spento cinque volte il debugger dirà 5 thread asincroni operativi, ma posso continuamente attivare e disattivare quanto voglio perché il pool di risorse uccide il più vecchio asynctask morto.

+0

eccellente, buono a sapersi. Sto lavorando a un'applicazione diversa che utilizza molti asynctas – CQM

0

Non c'è il massimo che io conosca. Posso dirti, tuttavia, che molto probabilmente non hai bisogno di molti thread.

È possibile mantenere gli ascoltatori di conto alla rovescia in un singolo thread utilizzando il Handler di Android, in particolare il metodo postDelayed(). Avviare uno Looper in un thread separato e utilizzare un Handler per gestire i timeout: non attendere o il ciclo di sospensione.

+1

come hai fatto un rialzo d proprio username ?? – snapfractalpop

0

Non credo che il conto alla rovescia creerà thread: dovrebbe semplicemente aggiungere l'attività a una coda del thread principale dal suo aspetto.

Tutti i vostri ascoltatori dovrebbero svolgersi sullo stesso thread così (c'è un unico filo che gestisce tutti gli ascoltatori (per gli oggetti visibili in ogni caso).

quindi probabilmente non si utilizza nessuna parte vicino come tanti fili come Se pensassi di creare molte discussioni sarei preoccupato - sono davvero difficili da sincronizzare e potrebbero costarti molto più di quanto potresti guadagnare, ma con le strutture elencate andrei avanti e assegna tutto ciò che ritieni appropriato (ma prova per le prestazioni su un dispositivo economico, ovviamente)

Problemi correlati