AsyncTask zum Aktualisieren des Widgets - Zugriff auf Textansichten in onPostExecute ()?

8

Folgende Situation:

Ich habe ein app widget , das Daten von einer URL abruft und das Widget mit parsed html aktualisiert. Auf pre-honeycomb devices kann dies über ein service geschehen, ohne einen separaten Thread zu verwenden. Jetzt, auf ICS, hat sich das geändert und ein ASyncThread ist notwendig.

Um auf TextViews im Widget-Updater-Service zuzugreifen, benutze ich

%Vor%

Aber das scheint nicht in ASyncThread zu funktionieren. Könnte es sein, dass der Hauptdienst bereits beendet wurde, als der Thread versucht, den textview ?

zu ändern?

Irgendwelche Ideen zur Lösung dieses Problems?

    
skyworxx 22.12.2011, 21:57
quelle

4 Antworten

3

Am besten bewahren Sie Ihre eigene Aufzeichnung der RemoteView für jedes aktualisiert werden appWidgetId, so dass Ihre privaten internen BroadcastReceivers können Aktualisiere es. Sie können den AppWidgetManager.updateAppWidget () an beliebiger Stelle verwenden Zeit nicht nur, wenn Sie die ACTION_UPDATE-Absicht erhalten.

Widget.java:

%Vor%

FetchTask.java:

%Vor%     
Erti-Chris Eelmaa 31.05.2013 10:57
quelle
0

Meiner Meinung nach sollte das Widget nur Daten verarbeiten, die bereits verarbeitet und sofort verfügbar sind. Vielleicht sollten Sie einen Dienst anrufen, um diese Daten vorzubereiten (über AsyncTask) und wenn die ganze Arbeit erledigt ist, sollte der Dienst appWidgetManager.updateAppWidget aufrufen. Aber das ist nur MHO.

    
Cassio Landim 16.05.2013 14:56
quelle
-1

Versuch, die Methode .setText in onpostexecute ()

aufzurufen     
JakeWilson801 22.12.2011 22:47
quelle
-1

Verwenden Sie die folgende Methode, um Ihr App-Widget zu aktualisieren:

%Vor%     
Yury 22.12.2011 22:57
quelle