2011-09-28 18 views
10

que tienen una aplicación para Android que tiene cosas separadas pasando, pero son básicamente las discusiones (y sin duda son las discusiones al depurador Android)Android ¿Cuántos hilos puedo llevar?

Hay varios detectores de animación que bucle y se llaman entre sí

Hay una cuenta regresiva que siempre cuenta regresivamente a cero después de iniciarse

Ahora tengo que considerar agregar más temporizadores de cuenta regresiva. ¿Cuántos de estos tipos de procesos de bucle puedo tener? En esta implementación particular, no me preocupan el rendimiento, la eficiencia, etc., hasta que se vuelve aparente.

Insight apreciado

Respuesta

7

estaría muy sorprendido al saber que agotado el número de hilos se puede utilizar con seguridad en una aplicación Android, siempre y cuando usted está manejando adecuadamente su tiempo de vida y prevenir "bucles ocupados" y el como de ocurriendo.

Una cosa que sí aprendí, estoy bastante seguro de que solo puedes tener 5 asynctasks operacionales en cualquier momento, y seguirán existiendo arbitrariamente y te matarán o reaparecerán por sí mismas si comienzas nuevas ... es decir, si He activado una asynctask y luego quitado cinco veces el depurador dirá 5 hilos asincrónicos operacionales, pero puedo activar y desactivar continuamente todo lo que quiera porque el grupo de recursos matará a la más antigua asynctask muerta.

+0

excelente, es bueno saberlo. Estoy trabajando en una aplicación diferente que utiliza muchas asynctasks – CQM

0

No hay un máximo que yo sepa. Sin embargo, puedo decirles que lo más probable es que NO NECESITEN tantos hilos.

Puede mantener a los oyentes de cuenta atrás en un solo hilo usando Handler de Android, específicamente el método postDelayed(). Comience un Looper en un subproceso separado, y use un Handler para administrar los tiempos de espera - no ocupado espera, o sleep-loop.

+1

cómo hiciste un upside d ¿propio nombre de usuario? – snapfractalpop

0

No creo que el temporizador de cuenta regresiva creará subprocesos, simplemente debe agregar su tarea a una cola en su hilo principal a partir de su aspecto.

Todos sus oyentes deben tener lugar en el mismo hilo, así (hay un solo hilo que gestiona todos los oyentes (para los objetos visibles de todos modos).

Así que es probable que no están utilizando ni de lejos tan muchos hilos como Si creas muchos hilos, me preocupa que sean muy difíciles de mantener sincronizados y te pueden costar mucho más de lo que ganarías, pero con las estructuras enumeradas, seguiría adelante. y asignar tantos como te parezca apropiado (pero prueba el rendimiento en un dispositivo barato, por supuesto)

Cuestiones relacionadas