Intereting Posts
Как проверить состояние двух счетчиков? Извлеките все видеофрагменты в Android Добавить (открыть / закрыть) кнопку для активности (открытия / закрытия) навигационного ящика Error: идентификатор ресурса, найденный для атрибута «showAsAction» в пакете android Ошибка при подключении к adb при запуске приложения для Android Как загрузить изображение на холст HTML5 с помощью Phonegap Android, как получить 10 закрывает геоинформацию от текущей позиции Как изменить высоту мягкой клавиатуры во время выполнения? Управление сервисным API из BroadcastReceiver Android TextView SetText () перестает выделять другой TextView – обходной путь? Получить номера из EditText Android: как получить изображение профиля Google+ и обложку в навигационном ящике Нужны ли Android / LDPI активы / иконки? Закладка пунктов меню в панели действий sherlock Как я могу имитировать команду «хвост» для файла в файловой системе Android?

Виджет onUpdate вызывается при запуске операции конфигурации

Я реализую виджет, и я сталкиваюсь со следующими проблемами:

1) onUpdate вызывается, когда я добавляю виджет на главный экран, даже если я указал активность конфигурации. Как только я добавлю его на главный экран, APPWIDGET_ENABLED широковещательная передача APPWIDGET_ENABLED , за которой следует APPWIDGET_UPDATE а затем запускается настройка конфигурации. Это ошибка? Как я должен понимать в методе onUpdate , который вызывается до того, как возвращается активность конфигурации? Я могу сделать это с помощью общего значения предпочтений, но я бы хотел, чтобы он вел себя так, как написано в руководстве разработчика, то есть метод onUpdate не следует вызывать.

2) onUpdate не updatePeriodMillis каждые updatePeriodMillis секунд, которые были установлены на 10000 , то есть 10 секунд для целей тестирования. Я пропустил что-то в декларации receiver в файле манифеста? Я продолжаю получать предупреждение Lint. Экспортированный приемник не требует разрешения, но я думаю, что это проблема Lint, а не моя ошибка. EDIT : Я только что нашел это в справочных документах: Примечание. Обновления, запрашиваемые с помощью updatePeriodMillis, не будут отправляться более одного раза каждые 30 минут. Поэтому правильно, что виджет не обновляется, как часто я указывал, и я изменил время на 1800000 миллисекунд.

3) Я хочу передать свое собственное действие трансляции поставщику виджета, правильно ли добавить другой блок- receiver в таргетинге манифеста одного и того же класса провайдера или добавить только другое намерение в intent-filter , содержащий действие APPWIDGET_UPDATE ? Кстати, я прокомментировал мой второй блок receiver и это не причина проблем выше. Я создал другой блок- receiver потому что я хотел объявить его как не экспортированный, чтобы позволить действие intent-filter запускаться только кодом приложения, а не кем-то еще.

AndroidManifest.xml

  <receiver android:name="MyWidgetProvider" android:exported="true"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/my_widget_info" /> </receiver> <receiver android:name="MyWidgetProvider" android:exported="false"> <intent-filter> <action android:name="org.test.mywidget.FORCE_SMALL_WIDGET_UPDATE" /> </intent-filter> </receiver> 

my_widget_info.xml

 <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="294dp" android:minHeight="110dp" android:updatePeriodMillis="1800000" android:initialLayout="@layout/my_widget_layout" android:configure="org.test.mywidget.MyWidgetConfiguration" android:resizeMode="none"> </appwidget-provider>