Detrás de cámaras
Qué le hace un cierre forzado a tu luz de notificación
Por el equipo de llcloud 5 min de lectura
Respuesta rápida
En Android, forzar la detención de una app también desactiva su servicio de accesibilidad, tanto en Android puro como en Samsung, Xiaomi y otros celulares. Una app no puede volver a activar su propio servicio de accesibilidad, porque Android lo reserva para el sistema y para ti. AuraDisplay no puede evitar todas las detenciones, así que reduce las probabilidades con Mantener AuraDisplay activo, detecta cuando el servicio está apagado y envía un aviso con un botón Volver a activar.
Si usas AuraDisplay en un celular con un administrador de batería estricto, quizá hayas visto esto: la luz se detiene, abres la app y el interruptor de accesibilidad está apagado. Tú no lo apagaste. Nada falló. Lo hizo el celular, y de una forma que la app no puede deshacer por sí sola. Este artículo explica qué pasa, por qué Android funciona así y qué construimos alrededor de eso.
¿Qué pasa realmente durante un cierre forzado?
Un cierre forzado es la forma más fuerte que tiene Android de cerrar una app. Termina el proceso de la app, cancela su trabajo programado e impide que vuelva a iniciarse en segundo plano hasta que algo específico la despierte. Puedes hacerlo tú con Forzar detención en la página de información de una app, pero lo más común es que venga de una app limpiadora o de las herramientas de batería de la marca del celular, que pueden detener apps que consideran que gastan demasiada energía.
Para la mayoría de las apps, un cierre forzado es una molestia. Para una app construida sobre un servicio de accesibilidad, es más que eso. Cuando se fuerza la detención de la app, Android también desactiva su servicio de accesibilidad. No es una rareza de una sola marca. Podemos reproducirlo en un Pixel con Android puro con un solo comando, y se comporta igual en Samsung, Xiaomi y otros celulares.
AuraDisplay usa dos permisos, y reaccionan de forma distinta:
| Permiso | Para qué lo usa AuraDisplay | Después de un cierre forzado |
|---|---|---|
| Acceso a notificaciones | Saber que llegó una notificación y qué app la envió | Sigue concedido y Android lo reconecta |
| Servicio de accesibilidad | Dibujar la luz sobre la pantalla de bloqueo y el Always On Display | Desactivado hasta que lo vuelvas a activar |
Esa diferencia es toda la historia. La parte que oye las notificaciones regresa, y la parte que dibuja la luz no.
¿Por qué una app no puede volver a activar su servicio de accesibilidad?
Porque Android no se lo permite, y con buena razón. Un servicio de accesibilidad puede ver y manejar lo que hay en la pantalla, y por eso las apps para personas que necesitan ayuda para usar su celular dependen de él. Ese mismo poder es la razón por la que Android insiste en que sea una persona, no una app, quien decida qué servicios están activos.
El ajuste que lista los servicios de accesibilidad activos solo se puede cambiar con un permiso protegido que las apps comunes de Google Play no pueden tener. Así que después de un cierre forzado no hay API, ni truco, ni ajuste oculto que permita a AuraDisplay volver a activarse. Las apps que sí reactivan servicios de accesibilidad lo logran con herramientas de desarrollo o root, que una instalación normal desde Google Play no tiene.
Nos parece la regla correcta. Significa que cualquier arreglo después de un cierre forzado necesita un toque tuyo, así que nuestro trabajo es hacer ese toque lo más fácil posible y necesario lo menos posible.
¿Qué hace AuraDisplay al respecto?
Lo pensamos en tres capas: hacer menos probable una detención, detectar cuando ocurre y hacer rápida la reparación. Ninguna capa reemplaza a las otras.
Prevención: Mantener AuraDisplay activo
Mantener AuraDisplay activo es una opción gratuita en los ajustes de la app. Ejecuta AuraDisplay como un servicio en primer plano, que trae una notificación y que Android considera más importante que una app común en segundo plano. En celulares que cierran apps por su cuenta, eso reduce las probabilidades de una detención.
Aquí tomamos dos decisiones a propósito. La notificación se puede deslizar para quitarla, y una vez que la quitas, se queda quitada en lugar de volver a aparecer enseguida. Y nunca la describimos como una armadura. Algunos administradores de batería, entre ellos Samsung Device Care, pueden forzar la detención de una app incluso mientras funciona así. Ayuda, pero no es una garantía.
Detección: darse cuenta de que la luz está apagada
Recuerda que el acceso a notificaciones sobrevive a un cierre forzado y Android lo reconecta. Esa reconexión es el único momento en que AuraDisplay puede volver a ejecutarse sin que la abras, así que ahí es donde revisa. Poco después de reconectarse, mira si el servicio de accesibilidad está activo. Si está apagado, sabe que la luz está muerta.
AuraDisplay también lo detecta desde el otro lado. Si siguen llegando notificaciones y ninguna se dibuja, algo está bloqueando la luz, y eso dispara la misma revisión.
Reparación: un toque y vuelve
Cuando el servicio está apagado, AuraDisplay te envía un aviso con un botón Volver a activar. Abre los ajustes de accesibilidad de tu celular en la entrada de AuraDisplay, así que solo mueves un interruptor. Si nunca habías activado el servicio, primero ves la explicación de AuraDisplay sobre el permiso, porque nadie debería activar un servicio de accesibilidad sin saber por qué.
El aviso es una notificación, así que AuraDisplay necesita permiso para publicar notificaciones. Si las desactivaste, la advertencia no tiene cómo llegarte.
Cuando la luz regresa, AuraDisplay ofrece los ajustes que hacen menos probable la próxima detención: el interruptor de segundo plano o inicio automático de la marca de tu celular, la optimización de batería y Mantener AuraDisplay activo.
¿Cómo hacer que los cierres forzados sean más raros en tu celular?
Los ajustes cambian según la marca, y también qué tan agresivo es el celular. Empieza con el panorama general en por qué Android cierra las apps en segundo plano y luego sigue la guía de tu marca:
- Cómo evitar que Samsung cierre apps
- Cómo evitar que Xiaomi cierre apps
- Cómo evitar que OnePlus cierre apps
- Cómo evitar que OPPO y realme cierren apps
Una cosa más que vale la pena revisar: si usas un limpiador o una app de «optimización», fíjate si fuerza la detención de otras apps. Algunas lo hacen, y cada detención vuelve a apagar la luz.
Por qué te lo contamos
Sería más fácil decir «mantén la app en ejecución y funcionará». Tampoco sería cierto en todos los celulares. Una luz de notificación que se apaga en silencio es peor que una que te dice que necesita un toque, así que elegimos construir sobre la versión honesta. Si tu celular sigue apagando AuraDisplay incluso después de todo esto, envíanos por correo un informe de diagnóstico desde la app. Esos informes son como aprendemos lo que hace realmente cada celular.
Preguntas
¿Forzar la detención desactiva la accesibilidad en Android?
Sí. Cuando se fuerza la detención de una app, Android también desactiva el servicio de accesibilidad de esa app. Lo vemos en Android puro, no solo en celulares con administradores de batería agresivos. La detención puede venir del botón Forzar detención en Ajustes, de una app limpiadora o de las herramientas de batería de la marca del celular, y el servicio sigue apagado hasta que alguien lo vuelva a activar.
¿Por qué la app no puede volver a activar su servicio de accesibilidad?
Porque Android no lo permite. Cambiar qué servicios de accesibilidad están activos requiere un permiso protegido del sistema que las apps normales de Google Play no pueden tener. Un servicio de accesibilidad es muy potente, así que Android quiere que una persona tome esa decisión en Ajustes. Lo mejor que puede hacer una app es detectar que está apagado y llevarte al interruptor correcto.
¿Mantener AuraDisplay activo evita los cierres forzados?
Los hace menos probables, pero no es una garantía. La opción ejecuta AuraDisplay como un servicio en primer plano con una notificación, algo que Android considera más importante que una app en segundo plano. Algunos administradores de batería, como Samsung Device Care, aún pueden forzar la detención de una app que funciona así. Por eso AuraDisplay también vigila que el servicio no se apague y te avisa.
¿Cómo sé si mi celular está forzando la detención de AuraDisplay?
Si el interruptor de accesibilidad de AuraDisplay está apagado y tú no lo tocaste, lo más probable es un cierre forzado. AuraDisplay envía un aviso cuando nota que el servicio está apagado. Si sigue ocurriendo, sigue la guía para la marca de tu celular y envía un informe de diagnóstico desde la app para que veamos qué está haciendo el celular.