Почему мой виджет обновляется при создании действия конфигурации?

#android #android-widget #widget

#Android #android-виджет #виджет

Вопрос:

я настроил его на обновление каждые 12 часов: android: updatePeriodMillis = «43200000»

затем в манифесте у меня есть это:

     <application android:icon="@drawable/icon" android:label="@string/app_name">

    <!-- 
    *************************************************************************************************
    *  Provider Configure Activity
    *************************************************************************************************
    --> 
        <activity android:name=".ConfiguratorActivity"
                android:label="Configure Widget"
                android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
            </intent-filter>
        </activity>


   <!-- 
    *************************************************************************************************
    *  Widget Provider Receiver
    *************************************************************************************************
    --> 
        <receiver android:name=".WidgetProvider">
            <meta-data android:name="android.appwidget.provider"
                android:resource="@xml/widget_provider" />
                <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />

                </intent-filter>
                <service android:name=".AppWidget$UpdateService" />
        </receiver>     


    </application>
  

однако приложение продолжает обновляться каждый раз, когда я создаю сам виджет, когда я запускаю действие конфигурации, но оно не обновляется, когда я нажимаю кнопку ok, в которой используется метод, содержащий инструкции по принудительному использованию виджета =/

Комментарии:

1. но вопрос в том, почему в документации говорится, что виджет не будет обновляться при внедрении конфигуратора. и все же он обновляется при создании, это вызывает у меня проблемы с логикой (общие настройки) и зависает при запуске конфигуратора с момента его одновременного обновления

Ответ №1:

Виджеты всегда обновляются при их создании, чтобы вы могли подготовить надлежащий внешний вид. Это хорошо; в противном случае ваш первоначальный макет (как определено в xml) отображался бы до тех пор, пока он окончательно не обновится через 12 часов. Если вам это не нужно, вы должны определить, что это первое обновление (напишите флаг в разделяемые префы), а затем проигнорируйте это.

Кнопка: как вы подключили кнопку для принудительного обновления?

Ответ №2:

Начиная с Donut (Android 1.6) минимальное и максимальное время обновления виджета составляет 30 минут, в основном для того, чтобы избежать короткого разряда батареи.

Ребята из Android должны изменить свою документацию:

https://developer.android.com/reference/android/appwidget/AppWidgetProviderInfo.html#updatePeriodMillis