Ошибка документации: зарегистрированные получатели широковещательной рассылки манифеста получают намерения ACTION_SHUTDOWN в Android 8.0

click fraud protection

Манифестные зарегистрированные широковещательные намерения в Android Oreo ограничены лишь несколькими, и ACTION_SHUTDOWN не входит в их число, или нет?

Android использует широковещательные намерения для многих целей. Разработчики приложений могут прослушивать их выполнение определенных действий, например, когда широковещательное намерение MEDIA_MOUNTED позволяет приложениям узнать, когда SD-карта была смонтирована в качестве хранилища. Как разработчик приложения, вы можете запрограммировать для этого приемники вещания, а затем вызывать функцию при каждом подключении носителя, например, чтобы изменить каталог хранения приложения по умолчанию на SD-карту. Именно для этого и используются широковещательные намерения. В основном они используются для трансляции определенных системных событий любым приложениям, которым может потребоваться эта информация. Приемники вещания необходимо зарегистрировать либо в файле манифеста Android, либо программно, когда они находятся на переднем плане.

Из-за обильного трения памяти, вызванного множеством разных разработчиков, реализующих всевозможные трансляции приемников для частых активных намерений, Google решил ограничить доступ к большинству этих широковещательных намерений в Android 8.0 Орео. Однако компания признала, что существует пара важных намерений вещания, которые можно реализовать. к ним все равно стоит прислушиваться, поскольку они происходят не так часто и, следовательно, имеют мало шансов вызвать воспоминания. проблемы. Они 

опубликовал белый список неявной трансляции намерения, которые приложения Android все еще могут прослушивать, зарегистрировав приемники вещания в манифесте Android. Это обширный список, включающий практически все, что вам как разработчику приложений может понадобиться, за одним исключением.

Похоже, Google не указал цель трансляции, которая используется многими приложениями. Это ACTION_SHUTDOWN намерение трансляции. Это намерение отправляется при выключении устройства, что может быть очень важно для разработчиков приложений, чтобы они могли быстро завершить работу приложения до того, как процесс будет завершен. Несмотря на то, что это широковещательное намерение не отображается в списке намерений из белого списка, приложения может на самом деле все еще слушайте его через широковещательный приемник, зарегистрированный в Манифесте. согласно коммиту на Android Git просто Google забыл включить его в свой список.

Замечательно, что оно действительно внесено в белый список, поскольку Google удаляет из приложений возможность определять момент выключения устройства. будет плохо как для пользователей, так и для разработчиков приложений, поскольку некоторые приложения больше не смогут быстро сохранять работу перед выключением устройства. Мы не совсем уверены, почему это намерение трансляции не указано на странице Google для разработчиков, но мы поговорили с опытным разработчиком Android. CommonsWare и он согласен, что это, скорее всего, простая ошибка документации со стороны Google. По его словам, это происходит не впервые.