Вот пример, как настроить создание события обновления для AppWidget. Вы можете настроить его для своих целей:
Intent intent = new Intent();
intent.setAction(ExampleAppWidgetProvider.MY_INTENT_ACTION);
Uri data = Uri.withAppendedPath (Uri.parse("wordwidget://wordwidget/widgetId/#"),
String.valueOf(mAppWidgetId));
intent.setData(data);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
ExampleAppWidgetConfigure.this, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC, System.currentTimeMillis() + 10000, 10*1000, pendingIntent);
Вы также должны создать дополнительный фильтр намерений для своего БР, который получит намерение с именем действия: ExampleAppWidgetProvider.MY_INTENT_ACTION
UPDATE
К вашему Broadcast Receiver вы должны добавить новый намеренный фильтр, например:
<intent-filter>
<action android:name="org.android.testwidget.MY_APPWIDGET_UPDATE" />
<data android:scheme="wordwidget" />
</intent-filter>
Затем вы создаете Намерение, которое будет получено определенным фильтром намерений. В моем случае public static final String MY_INTENT_ACTION = "org.android.testwidget.MY_APPWIDGET_UPDATE";
Часть данных Intent необходима для создания отдельного намерения для каждого экземпляра AppWidget (потому что я хочу обновить каждый экземпляр в разное время). После этого вы создаете отложенное намерение для BR и создаете alarmManager с этим PI. В методе setRepeating
вы определяете время начала и интервал для вашего экземпляра AppWidget.