Ich habe ein Problem, wenn ich mein Widget manuell über AppWidgetManager.updateAppWidget aktualisiere. Plattform ist Android 2.2.
Hier ist der Code:
Ich habe das Widget zusätzlich zu einer bestehenden Aktivität im Manifest deklariert:
Die Widget-Klasse wurde in Widget.java deklariert:
%Vor%In der bestehenden Aktivität habe ich einige Zeilen hinzugefügt, um das Widget manuell zu aktualisieren:
%Vor%Aber jetzt habe ich diesen Fehler: Wenn das Widget onClicked ist, zeigt es das Energie-Einstellungs-Widget für eine kurze Zeit (~ 0,5sec-1sec) bevor das gewünschte Widget angezeigt wird.
Hier ein Screenshot dieser Ausgabe (Reihenfolge von links nach rechts): Ссылка
Zuerst gibt es das Widget wie im linken Bild, wechselt dann zum mittleren Bild und bleibt entweder dort oder wechselt nach ca. 0,5-1sec zum rechten Bild.
Leider kann ich keinen Fehler im Code sehen, oder?
Hoffentlich kannst du mir helfen, dieses Problem zu beheben;) Danke im Voraus, Grüße, Oli
Ich hatte genau das gleiche Problem. Ich löste es, indem ich das Widget NICHT über die Übertragung manuell aktualisierte, sondern indem ich AppWidgetManager.updateAppWidget (ComponentName, RemoteViews) stattdessen von einer AsyncTask.
Versuchen Sie dies in Ihrer Widget-Klasse:
%Vor%Aktualisieren Sie dann, indem Sie Widget.updateWidget (this) von Ihrer Aktivität aufrufen.
Ich habe den gleichen programmatischen Weg benutzt, um das Widget manuell zu aktualisieren, wie Sie es getan haben (Von ) und stellte fest, dass dies die genaue Ursache des Problems ist.
Dies geschieht immer noch auf 4.2 und 2.3, Offizielle und inoffizielle ROMS (Touchwiz geht absolut wild, wenn das passiert).
Das konnte ich nur beheben, indem ich das gesamte Update mit der Übertragung löschte und das Widget remote aktualisierte, indem ich eine normale Broadcast
an den Widget-Provider sendete und
von onReceive
(Das funktioniert für mich, da meine Widgets identisch sind)
Auf diese Weise schien das Problem nicht aufzutreten und ich konnte das Widget remote aktualisieren. Alte Frage, ich weiß, aber verdient eine Antwort, da dies alles war, was ich in diesem seltsamen Thema finden konnte.