Ich weiß, dass es möglich ist, aber ich kann keine Möglichkeit finden, ein Update meines Widgets aus der Hauptaktivität auszulösen. Gibt es nicht eine allgemeine Absicht, die ich senden kann?
android
android-activity
android-widget
Nuvious
quelle
quelle
widgetId
?intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
Dies hat geholfen, als ich gesucht habe, wie ein Widget über einen Dienst oder eine Aktion aktualisiert werden kann (aber möglicherweise in jedem Kontext möglich ist):
quelle
Um ein Widget aus einer Aktivität zu aktualisieren, können Sie dies folgendermaßen tun:
Funktioniert bei mir :)
quelle
Versuche dies:
quelle
Wenn Sie mit einem Widget arbeiten, das eine Sammlung wie ListView, GridView oder StackView verwendet, um die Elemente des Widgets zu aktualisieren, gehen Sie wie folgt vor:
Mit dieser Methode notifyAppWidgetViewDataChanged () können Sie die Widget-Elemente zwingen, neue Daten in Echtzeit abzurufen.
quelle
quelle
notifyAppWidgetViewDataChanged()
, die ein Array benötigt.Phaethons akzeptierte Lösung in Kotlin:
Wo MyAppWidgetProvider von AppWidgetProvider abgeleitet ist:
class MyAppWidgetProvider : AppWidgetProvider() {
quelle
Wenn Sie versuchen, das Widget programmgesteuert zu aktualisieren, wenn Sie keinen expliziten Zugriff auf YourWidgetProvider.class haben, z. B. von einem anderen Modul oder einer anderen Bibliothek aus, können Sie die Ausgaben von YourWidgetProvider.class.getName () erfassen und eine Konstante erstellen:
Sie könnten dies dann implizit verwenden:
quelle