Ich habe ein einfaches Appwidget und möchte es aktualisieren, wenn eine Aktion in einer Aktivität (in derselben App) auftritt. In OnUpdate (), ich aktualisiere sofort das Widget, das funktioniert gut. In meiner Aktivität rufe ich dieselbe statische Update-Methode in meinem Appwidget auf, die in OnUpdate () aufgerufen wird, um die Ansichten zu aktualisieren. Das Widget wird nicht aktualisiert.
Ich kann den Code direkt in die AppWidgetManager.updateAppWidget () -Methode verfolgen, und das alles ist gut, aber das Widget wird nicht aktualisiert.
Der einzige mögliche Unterschied, den ich sehen kann, ist, dass das Context-Objekt, das in meine statische Update-Methode übergeben wurde, anders ist, wenn es aus dem Kontext einer Aktivität im Kontext der onUpdate () -Methode eines Appwidgets aufgerufen wird. Es gibt jedoch viele Beispiele im Internet, also erwarte ich, dass es funktionieren sollte.
Ohne Ihren Code zu sehen, bin ich nicht 100% sicher, wie Sie es versuchen, aber hier ist die Methode, die ich verwende. Innerhalb meiner Activity
habe ich die folgende Methode:
Dabei ist MyWidget
die Klasse des Appwidgets. Ich kann diese Methode von überall in meinem Activity
aufrufen, um alle meine Appwidgets zu aktualisieren.
Anstatt eine statische Methode zu verwenden, nutzen Sie die Tatsache, dass das Widget bereits ein Broadcast-Empfänger ist, und registrieren Sie in Ihrem Manifest eine Update-Absicht dafür. Dann, wann immer Sie es von der Aktivität aktualisieren müssen, rufen Sie einfach
%Vor%und innerhalb der Empfänger-Tags Ihrer Manifest-Datei
%Vor%Tags und Links android android-appwidget