Erreur de documentation: les récepteurs de diffusion enregistrés dans le manifeste reçoivent des intentions ACTION_SHUTDOWN dans Android 8.0

Les intentions de diffusion enregistrées du manifeste sont limitées à quelques-unes seulement dans Android Oreo, et ACTION_SHUTDOWN n'en fait pas partie, n'est-ce pas ?

Android utilise des intentions de diffusion pour beaucoup de choses. Les développeurs d'applications peuvent les écouter pour effectuer certaines actions, par exemple lorsque l'intention de diffusion MEDIA_MOUNTED permet aux applications de savoir quand une carte SD a été montée comme stockage. En tant que développeur d'applications, vous pouvez programmer des récepteurs de diffusion à cet effet, puis appeler une fonction chaque fois qu'un support est monté, par exemple pour remplacer le répertoire de stockage par défaut de l'application par la carte SD. Ce genre de chose est à cela que servent les intentions de diffusion. Ils sont principalement utilisés pour diffuser certains événements système à toutes les applications susceptibles d'avoir besoin de ces informations. Les récepteurs de diffusion doivent être enregistrés dans le fichier manifeste Android ou par programme lorsqu'ils sont au premier plan.

En raison de l'abondance de problèmes de mémoire provoqués par de nombreux développeurs différents implémentant toutes sortes de diffusions récepteurs pour les intentions de diffusion fréquentes, Google a décidé de restreindre l'accès à la plupart de ces intentions de diffusion dans Android 8.0 Oréo. La société a toutefois reconnu qu'il existait quelques intentions de diffusion importantes qui pouvaient être prises en compte. être toujours écoutés car ils ne se produisent pas très souvent et ont donc peu de chance de provoquer un souvenir problèmes. Ils a publié une liste blanche de diffusion implicite intentions que les applications Android peuvent toujours écouter en enregistrant les récepteurs de diffusion dans le manifeste Android. Il s'agit d'une liste longue qui couvre à peu près tout ce dont vous pourriez avoir besoin en tant que développeur d'applications, à une exception près.

Il semble que Google n'ait pas répertorié une intention de diffusion utilisée par de nombreuses applications. C'est le ACTION_SHUTDOWN intention de diffusion. Cette intention est envoyée lorsque l'appareil s'éteint, ce qui peut être très important pour les développeurs d'applications afin qu'ils puissent rapidement arrêter tout ce que fait l'application avant que le processus ne soit interrompu. Bien que cette intention de diffusion n'apparaisse pas dans la liste des intentions sur liste blanche, les applications peut en fait, écoutez-le toujours via un récepteur de diffusion enregistré dans le manifeste selon un commit sur Android Git, Google a simplement oublié de l'inclure dans sa liste.

C'est formidable qu'il soit en fait sur liste blanche, car Google supprime la possibilité pour les applications de détecter le moment où l'appareil s'éteint. serait mauvais pour les utilisateurs et les développeurs d'applications, car certaines applications ne seraient plus en mesure de sauvegarder rapidement leur travail avant l'arrêt de l'appareil. Nous ne savons pas exactement pourquoi cette intention de diffusion n'est pas répertoriée sur la page Google destinée aux développeurs, mais nous avons discuté avec un développeur Android chevronné. CommonsWare et il convient qu'il s'agit probablement d'une simple erreur de documentation de la part de Google. Ce ne serait pas la première fois que cela se produirait, selon lui.