2011-07-30 21 views
5

No pude encontrar ninguna buena aplicación para la transmisión de archivos MP3 desde una URL que se puede ejecutar en segundo plano que cumpla mis requisitos, así que decidí escribir uno yo mismo. Resulta increíblemente fácil transmitir un MP3 con el MediaPlayer nativo si está ejecutando Froyo o mejor, y yo sí.¿Puedo evitar que Android mate mi aplicación?

Pero mi problema es que si cambio de aplicaciones y trato de mantener la transmisión (algunas duran de 2 a 4 horas) y juego o algo así mientras lo escucho, a veces simplemente muere. No estoy seguro de cuál es el problema, supongo que el sistema Android decidió que estaba bien matar ese proceso ... pero no fue así.

Entonces, ¿hay algo que pueda hacer para que mate a otros procesos si se necesitan recursos en lugar de mi aplicación de transmisión de mp3?

Lo que he intentado:

android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_AUDIO); 

Pero no es bueno.

+0

Puede ser que tengas algo de transmisión en ese juego también, aunque no estoy seguro, sucede que Android no puede reproducir audio de transmisión múltiple .......... http://stackoverflow.com/questions/5642508/android -multiple-simultáneo-streaming-audio – viv

+0

También escuché eso, pero antes de que mi actividad fuera una sola instancia, podía ejecutarla al menos dos veces simultáneamente, transmitiendo diferentes archivos. – Nick

Respuesta

2

he encontrado que después de mi Droid Incredible se actualiza a Gingerbread (2.3.4), de repente funciona. No hice ningún cambio, simplemente no murió en Gingerbread como lo hizo en Froyo. Sé que hubo mejoras en el reproductor de medios en Gingerbread, así que voy a tener que suponer que había un error en Froyo que se solucionó en Gingerbread.

-2

He tenido problemas con la gestión de memoria en mi teléfono Android, que ha terminado procesos como el que describió. Puede considerar instalar un programa como Android Booster para supervisar la memoria disponible y cerrar los programas que usan demasiada memoria, para que los programas que desea mantener abiertos tengan suficiente memoria para ejecutarse.

0

Por lo que sé, un programa no puede ejecutarse para siempre, en algún momento el sistema operativo lo matará. Pero lo que puede intentar es tener un servicio y hacer que genere notificaciones de vez en cuando con información útil. Luego, comienza la actividad nuevamente.

0

Esto se debe a una actividad Lifecycle. El sistema operativo podría matar tu aplicación si necesita memoria. Es posible que deba considerar un service

8

. Necesita hacer que el servicio sea un servicio en primer plano, si no lo ha hecho aún. Los servicios de primer plano deben mostrar un ícono en la barra de notificaciones, y el sistema Android no los matará a menos que se encuentre bajo una presión de memoria extrema.

Mira la documentación de startForeground()

+0

Impresionante. Mi siguiente paso fue agregar una notificación para ello. Parece que el servicio en primer plano se encargará de ambos. – Nick

+0

Creo que tienes la solución. La respuesta a continuación no es la solución porque depende de la versión de Android. – Cocorico

Cuestiones relacionadas