私はまだAndroidのにかなり新しいですが、私は三つのステップでこれを達成:
まず、私は方法(myUpdate(Context)
)で私のAppWidgetProvider.onUpdateの内容を置きます。
が
public void onReceive(final Context context, final Intent intent)
{
super.onReceive(context, intent);
if (MY_PUBLIC_STATIC_STRING.equals(intent.getAction()))
{
myUpdate(context);
}
}
第三に、私の他の活動から、私はちょうど意図に設定されたアクションで、一般的なブロードキャストを送信します。
第二に、私はこのような何かを見て()AppWidgetProvider.onReceiveをオーバーライド。
Intent updateWidgetIntent = new Intent(context, MyWidget.class);
updateWidgetIntent.setAction(MyWidget.MY_PUBLIC_STATIC_STRING);
context.sendBroadcast(updateWidgetIntent);
これは、代わりにあなたを与えるにonUpdate素敵なインタフェースの、文脈やアプリのウィジェットIDSからAppWidgetManagerに自分自身を見つけるために持っていることのマイナス面を持っています。だから私はこれが正しいアプローチだと懐疑的だ。運が良かった。
myUpdate(コンテキスト)は、次のように起動します:
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
int[] appWidgetIds =
appWidgetManager.getAppWidgetIds(new ComponentName(context, this.getClass()));