Я только что создал свой первый виджет, и все прошло хорошо, пока я не добрался до той части, где я должен установить, когда она будет обновляться. Вот мой код, чтобы сделать мой вопрос ясный:Как мне подходить к обновлению моего виджета?
Android Manifest:
<receiver android:name="com.whizzapps.stpsurniki.widget.UrnikWidget">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/app_widget_info"/>
</receiver>
App Widget Поставщик XML:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="80dp"
android:minHeight="40dp"
android:updatePeriodMillis="10"
android:initialLayout="@layout/app_widget"
android:widgetCategory="home_screen" >
</appwidget-provider>
класс AppWidgetProvider:
public class UrnikWidget extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
Log.i("TAG", "onUpdate");
}
}
Я создал простой виджет с TextView в нем, который отображает определенное слово, у него вообще нет логики, так как я все еще l зарабатывая, как работать с виджетами. Как вы можете видеть, я сделал log.i, чтобы увидеть, когда на самом деле вызывается onUpdate, и моя проблема в том, что он называется только в первый раз, когда я помещаю виджет на свой домашний экран.
Я знаю, что интервал обновления в 10 миллисекунд слишком низок и не должен использоваться из-за разряда батареи, но я использую 10 мс только для целей тестирования.
Почему onUpdate выполняется один раз, а не каждые 10 мс? И какой был бы лучший способ обновить виджет, если он мне понадобится, только в определенные часы? Предположим, мне нужен только мой виджет, который будет обновляться в 7 утра, 8 утра и 3 вечера. Это возможно? Спасибо!