2012-05-15 1506 views
5

Estoy desarrollando una aplicación para Android que también incluye un servicio. La funcionalidad 'Deslizar para salir' de la lista de aplicaciones recientes de ICS cierra la aplicación como se esperaba, pero el servicio simplemente sale junto con ella y no recibe una devolución de llamada onTaskRemoved() para indicarle que limpie (o en Destroy() para el caso):Manejo de la funcionalidad 'Deslizar para salir' de la lista de aplicaciones recientes de ICS

http://developer.android.com/reference/android/app/Service.html#onTaskRemoved(android.content.Intent)

esto deja el icono de notificación en la barra de estado y tengo que asegurarse de que esto se elimina cuando las salidas de aplicaciones.

He intentado configurar android: stopWithTask a falso (y verdadero) en Manifest.xml y parece no hacer diferencia.

<service 
     android:name="com.test.TestService" 
     android:stopWithTask="false" 
    /> 

¿Alguna idea de por qué no se recibe la devolución de llamada onTaskRemoved()?

Respuesta

0

Si su Service se está ejecutando en ese instante cuando el usuario se desliza, se invocarán estos métodos.

Asegúrese de que su Service se está ejecutando en ese instante.

2

Cuando se inició el Service con startService() y onTaskRemoved() cuando se eliminó la aplicación de la lista de aplicaciones recientes deslizando el dedo.

Pero si el Service comenzó con bindService(), entonces onTaskRemoved() nunca se llama. Consulte la referencia here para ver si se resuelve su problema.

+0

Mi trabajo es: eache –

0

Lo que hice es cada actividad iniciar un servicio específico con startService() en onCreate() y detenerlo con stopService() en onDestroy(), durante el tiempo de vida, al deslizar y la actividad está en la parte superior de tarea, se llamará a onTaskMoved, luego podríamos monitorear el comportamiento del deslizamiento. Lo malo es que cada actividad tiene que estar equipada con un servicio emparejado, eso es feo cuando hay varias actividades en su aplicación.

Cuestiones relacionadas