Widget onUpdate

F

FireRider

Neues Mitglied
6
Hallo zusammen

Ich habe wieder mal ein Problem.
Und zwar möchte ich mein Widget aus einer Activity heraus updaten, d.h. wenn dort ein Button gedrückt wird, sollen sich die im Widget angezeigten Daten ändern.

Mein Update-Prozess aus der Activity sieht so aus:

Code:
AppWidgetManager awm = AppWidgetManager.getInstance(this);
    		ComponentName cn = new ComponentName(this, stundenplanprovider.class);
    		int[] ids = awm.getAppWidgetIds(cn);
    		Intent updateWidget = new Intent();
    		updateWidget.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids);
    		updateWidget.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
    		getApplicationContext().sendBroadcast(updateWidget);

Das Widget selber hat eine überschriebene onReceive Methode, die die onUpdate Methode aufruft, wenn ein Intent reinkommt.

Code:
@Override
	public void onReceive(Context context, Intent intent) {
		AppWidgetManager awm = AppWidgetManager.getInstance(context);
		onUpdate(context, awm, intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS));
	}

Im onUpdate wird erstmal geprüft, ob eine Einstellung in den SharedPreferences true oder false ist (wird in der Activity ebenfalls gesetzt) und je nachdem werden andere Daten aus der SQLite-Datenbank geholt.
Jetzt das Problem, wenn ich mit Log.v einen Teil der Daten ausgebe (direkt eine Zeile bevor der Text der Views gesetzt wird) dann stimmen die Daten. Allerdings ändert sich am Widget überhaupt nichts.
Wenn das Handy aber neugestartet wird, dann werden die richtigen Daten angezeigt.

Beispiel:
Widget zeigt Standardmässig Daten A an.
In Activity wird Button gedrückt, boolean in den Settings wird geändert, Log zeigt Daten B an, aber Widget zeigt immer noch A an.

Ich hoffe ich konnte das verständlich erklären.
Kann mir jemand helfen?

Gruss, FireRider
 

Ähnliche Themen

wernho
Antworten
11
Aufrufe
604
wernho
wernho
F
Antworten
2
Aufrufe
915
Feuerstern
F
K
Antworten
1
Aufrufe
918
lordzwieback
lordzwieback
Zurück
Oben Unten