У меня есть виджет домашнего экрана для моего приложения, который работает очень хорошо, за исключением того факта, что он иногда сбрасывает свои представления к значениям по умолчанию.
Виджет - это кнопка, которая меняет цвет и текст в зависимости от DND вариант, который выбран. У меня также есть служба, которая прослушивает изменения DND вне приложения и соответствующим образом обновляет виджет.
Хотя технический аспект функционирует так, как задумано, существуют по крайней мере две очевидные ситуации, когда виджет удаленно просматривает go вернуться к настройкам по умолчанию (только просмотры, а не опция DND):
- Когда устройство оставлено без изменений в течение ночи
- Когда приложение закрывается в ландшафтном режиме и экран поворачивается назад в портретном режиме
Существуют и другие нечастые ситуации, когда это также происходит, хотя мне не удалось выяснить причину.
Я установил свои представления в поставщике виджетов, в onReceive () и в onUpdate (). Я также обновляю их в моем сервисе в onReceive ().
В моем сервисе onConfigurationChanged () у меня есть намерение обновить все экземпляры виджета и трансляции. Я предполагаю, что мне нужно то же самое где-то еще, но где?
Есть идеи о том, чего не хватает? Я могу предоставить более подробную информацию и код при необходимости.
РЕДАКТИРОВАТЬ: Я решил первую проблему сброса представлений, когда устройство оставлено нетронутым на ночь с этим кодом в onReceive () моего Сервиса :
if (SCREEN_ON.equals(intent.getAction())) {
buildUpdate(context);
}
Если бы кто-то мог помочь со второй проблемой, я был бы благодарен.