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
Aber das scheint nicht in ASyncThread
zu funktionieren. Könnte es sein, dass der Hauptdienst bereits beendet wurde, als der Thread versucht, den textview
?
Irgendwelche Ideen zur Lösung dieses Problems?
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% 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.
Tags und Links android multithreading android-appwidget widget