Ответ 1
Решено - я могу подтвердить, что действие НЕ требуется, если вы хотите создать кнопку для обновления Android AppWidget.
Я смог реализовать свой класс AppWidgetProvider таким образом, чтобы он регистрировал целевой фильтр android.appwidget.action.APPWIDGET_UPDATE с приемником Broadcast в AndroidManifest.xml, который затем запускает событие onUpdate в классе AppWidgetProvider (который в затем запускает UpdateService).
<!-- Broadcast Receiver that will process AppWidget updates -->
<receiver android:name=".MyWidget" android:label="@string/widget_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget" />
</receiver>
Затем UpdateService в моем классе AppWidgetProvider использует onHandleIntent для запуска частного метода buildUpdate - который регистрирует событие onClick с вызовом setOnClickPendingIntent следующим образом:
// set intent and register onclick
Intent i = new Intent(this, MyWidget.class);
PendingIntent pi = PendingIntent.getBroadcast(context,0, i,0);
updateViews.setOnClickPendingIntent(R.id.update_button,pi);
Вот ссылка на некоторый исходный код рабочего примера, который показывает, как кнопка обновления может быть использована для обновления виджета Twitter: