Stack Overflowのどこかで、いつか次のコードを見つけました。これをアプリケーションに少し調整しました。
private void updateWidget() {
AppWidgetManager widgetManager = AppWidgetManager.getInstance(ctx);
ComponentName widgetComponent = new ComponentName(ctx, MyAppWidgetProvider.class);
int[] widgetIds = widgetManager.getAppWidgetIds(widgetComponent);
Intent update = new Intent();
update.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, widgetIds);
update.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
ctx.sendBroadcast(update);
}
これにより、アプリケーションのウィジェットのすべてのインスタンスがプログラムで更新されます。で一度設定しctx
たActivity
'sコンテキスト( )です。上記のメソッドは、のメソッドで呼び出されます。this
onCreate()
Activity
onStop()
残念ながら、呼び出されると、アプリのウィジェットが他のアプリのウィジェット(APニュースなど)に置き換えられます(少なくともしばらくの間)。
これはどのように起こりますか?コードに何か問題がありますか?
ありがとうございました!
編集#1:これをより明確に指摘するには:自動更新の間隔をすでに定義しました。Activity
しかし、それに加えて、時々ウィジェットを更新したいと思います。この質問は、それも可能であることを示唆しています。
編集#2:間違ったウィジェットが数秒間しか表示されないのを見たところです。その後、自分のアプリのウィジェットが再び表示されます。