Pregunta

Mi aplicación utiliza un servicio remoto para reproducir audio. Lo hago de manera que ninguna actividad es propietaria de la reproducción del audio - el usuario puede accionar una cierta audio que debe reproducirse de una actividad, y el audio continuará jugar, ya que navegar alrededor de la aplicación. Yo, sin embargo, quiero decir la servicio para pausar o detener la reproducción de audio cuando el usuario "descargue" la aplicación ya sea por dar marcha atrás, el bloqueo de la pantalla, o golpear Inicio. Cuando la aplicación era una sola actividad, que estaba haciendo esto en onPause. Por lo tanto, supongo que soy esencialmente en busca de "onPause" a nivel de aplicación / tarea. Hace tal cosa ¿existe? Si no es así, ¿cuál es la "mejor práctica" de ser notificado que la tarea se ha puesto en espera por el usuario o bien copias de toda la salida o golpear a casa?

¿Fue útil?

Solución

Hmmmm ... por desgracia, sospecho que no hay una respuesta fácil allí. Creo que es por eso que el reproductor multimedia integrado y Pandora utilizan una notificación, para que el usuario fácilmente volver a la aplicación para que se callara.

Si su flujo de actividad es bastante lineal, entonces la copia de la aplicación es el mismo que se salga de la actividad inicial.

Un truco que utilicé en un escenario era que cada actividad de notificar al Servicio de onPause() y onResume(). El servicio supervisaría estos, y si tiene un onPause() sin onResume() subsecuente en un cierto período de tiempo, se asumió que el usuario se ha ido (CASA, llamada telefónica, mensaje de texto entrante, respondiendo a alguna aplicación a través de una notificación, etc. ).

También puede ver de forma ACTION_SCREEN_OFF Intents emisión, para manejar ese escenario.

Lo siento que no tengo una respuesta mejor bala de plata -. Tal vez alguien más tendrá una mejor idea

Otros consejos

He estado en una situación similar, y, esencialmente, hice lo sugirió Marcos; En lugar de una notificación separada, simplemente tenía el servicio cuenta las llamadas a mi registerCallback () y API unregisterCallback (), que cada actividad tenía que hacer de todos modos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top