Error de documentación: los receptores de transmisión registrados manifiestos reciben intenciones ACTION_SHUTDOWN en Android 8.0

Las intenciones de transmisión registrada manifiesta se limitan a solo unas pocas en Android Oreo, y ACTION_SHUTDOWN no ​​es una de ellas, ¿o sí?

Android utiliza intenciones de transmisión para muchas cosas. Los desarrolladores de aplicaciones pueden escucharlas para realizar ciertas acciones, como cuando MEDIA_MOUNTED transmite la intención para que las aplicaciones sepan cuándo se ha montado una tarjeta SD como almacenamiento. Como desarrollador de aplicaciones, puede programar receptores de transmisión para esto y luego llamar a una función cada vez que se monten medios, por ejemplo, para cambiar el directorio de almacenamiento predeterminado de la aplicación a la tarjeta SD. Este tipo de cosas es para lo que se utilizan los intentos de transmisión. Se utilizan principalmente para transmitir ciertos eventos del sistema a cualquier aplicación que pueda necesitar esa información. Los receptores de transmisión deben registrarse en el archivo de manifiesto de Android o mediante programación cuando están en primer plano.

Debido a una gran cantidad de memoria dañada causada por muchos desarrolladores diferentes que implementan todo tipo de transmisiones receptores para intents de activación frecuente, Google decidió restringir el acceso a la mayoría de estos intents de transmisión en Android 8.0 Oreo. Sin embargo, la compañía reconoció que había un par de intenciones de transmisión importantes que están bien para Todavía se les debe prestar atención, ya que no ocurren con tanta frecuencia y, por lo tanto, tienen pocas posibilidades de causar problemas de memoria. asuntos. Ellos publicó una lista blanca de transmisiones implícitas intents que las aplicaciones de Android aún pueden escuchar registrando receptores de transmisión en el Manifiesto de Android. Esta es una lista extensa y cubre casi todo lo que usted, como desarrollador de aplicaciones, puede necesitar, con una excepción.

Parece que Google no incluyó una intención de transmisión que utilizan muchas aplicaciones. Este es el ACTION_SHUTDOWN intención de transmisión. Esta intención se envía cuando el dispositivo se está apagando, lo que puede ser muy importante para los desarrolladores de aplicaciones, ya que pueden finalizar rápidamente cualquier cosa que esté haciendo la aplicación antes de que finalice el proceso. A pesar de que esta intención de transmisión no aparece en la lista de intenciones de la lista blanca, las aplicaciones poder de hecho, todavía lo escucho a través de un receptor de transmisión registrado en Manifest según un compromiso en Android Git, simplemente Google olvidó incluirlo en su lista.

Es fantástico que en realidad esté incluido en la lista blanca, ya que Google elimina la capacidad de las aplicaciones de detectar cuándo el dispositivo se está apagando. Sería malo tanto para los usuarios como para los desarrolladores de aplicaciones, ya que algunas aplicaciones ya no podrían guardar trabajo rápidamente antes de que se apague el dispositivo. No estamos del todo seguros de por qué esta intención de transmisión no aparece en la página de Google para desarrolladores, pero hablamos con un desarrollador veterano de Android. Artículos comunes y está de acuerdo en que probablemente se trate de un simple error de documentación por parte de Google. Según él, no sería la primera vez que esto sucede.