Widget onUpdate

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von FireRider, 28.02.2011.

  1. FireRider, 28.02.2011 #1
    FireRider

    FireRider Threadstarter Junior Mitglied

    Beiträge:
    38
    Erhaltene Danke:
    6
    Registriert seit:
    27.09.2010
    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
     

Diese Seite empfehlen