Cómo controlar la detención iniciada por el usuario de las apps que ejecutan servicios en primer plano

A partir de Android 13 (nivel de API 33), los usuarios pueden completar un flujo de trabajo desde el panel lateral de notificaciones para detener una app que tenga un servicio en primer plano en curso, independientemente de la versión del SDK de destino de esa app. Esta indicación, llamada Administrador de tareas, muestra una lista de apps que ejecutan un servicio en primer plano en ese momento.

En la parte inferior del panel lateral de notificaciones, hay un botón que indica la cantidad de apps que se están ejecutando en segundo plano. Cuando lo presionas, aparece un diálogo en el que se enumeran los nombres de las diferentes apps. El botón Detener se encuentra a la derecha de cada app.
Figura 1: Flujo de trabajo del Administrador de tareas en dispositivos que ejecutan Android 13 o versiones posteriores.

Esta lista tiene la etiqueta Apps activas. Junto a cada app, hay un botón Detener. En la Figura 1, se ilustra el flujo de trabajo del Administrador de tareas en un dispositivo que ejecuta Android 13.

Cuando el usuario presiona el botón Detener junto a tu app en el Administrador de tareas, se producen las siguientes acciones:

  • El sistema quita la app de la memoria. Por lo tanto, se detiene toda la app, no solo el servicio en primer plano en ejecución.
  • El sistema quita la pila de actividades de tu app.
  • Se detendrá cualquier reproducción de contenido multimedia.
  • Se quita la notificación asociada con el servicio en primer plano.
  • Tu app permanecerá en el historial.
  • Los trabajos programados se ejecutan a la hora programada.
  • Las alarmas suenan a la hora o en el período programado.

Para probar que tu app se comporte como debería mientras el usuario la detiene y luego de dicha acción, ejecuta el siguiente comando de ADB en una ventana de terminal:

adb shell cmd activity stop-app PACKAGE_NAME