1. ホーム
  2. android

[解決済み] アクティビティ/サービス/レシーバからプログラム的にウィジェットを更新する

2022-12-25 21:29:36

質問

可能なのは分かっていますが、メインのアクティビティからウィジェットの更新をトリガーする方法を見つけられません。 私が放送できる一般的な意図はないのでしょうか?

どのように解決するのですか?

もし、あなたが を使用している場合 AppWidgetProvider を使用している場合、この方法で更新することができます。

Intent intent = new Intent(this, MyAppWidgetProvider.class);
intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
// Use an array and EXTRA_APPWIDGET_IDS instead of AppWidgetManager.EXTRA_APPWIDGET_ID,
// since it seems the onUpdate() is only fired on that:
 int[] ids = AppWidgetManager.getInstance(getApplication())
    .getAppWidgetI‌​ds(new ComponentName(getApplication(), MyAppWidgetProvider.class));
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids);
sendBroadcast(intent);