--- android/Side9/src/dk/thoerup/side9/Side9WidgetProvider.java 2010/03/24 07:27:34 634 +++ android/Side9/src/dk/thoerup/side9/Side9WidgetProvider.java 2010/03/24 08:57:30 635 @@ -3,18 +3,22 @@ import java.net.URL; import java.net.URLConnection; +import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; -import android.appwidget.AppWidgetProviderInfo; import android.content.Context; +import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import android.net.Uri; import android.util.Log; import android.widget.RemoteViews; public class Side9WidgetProvider extends AppWidgetProvider { - private Side9Data usedData; + + //The data needs to be static, since BroadcastReceivers (which WidgetProviders extends) are only valid during onReceive() + private static Side9Data usedData; @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { @@ -22,30 +26,39 @@ final int N = appWidgetIds.length; // - Log.e("onUpdate", "onUpdate:" + N); + Log.e("Side9Pigen", "onUpdate:" + N); try { - Side9Data data = Side9Xml.loadXml(); + Side9Data newData = Side9Xml.loadXml(); - if (! data.equals(usedData)) { - usedData = data; // save the new data + if (! newData.equals(usedData)) { + + + Log.e("Side9Pigen", "(Re)loading image:" + newData.url); - URL imgUrl = new URL( data.url ); + URL imgUrl = new URL( newData.url ); URLConnection conn = imgUrl.openConnection(); Bitmap image = BitmapFactory.decodeStream( conn.getInputStream() ); + + usedData = newData; // if we made it to here without exceptions, save the new data + // Perform this loop procedure for each App Widget that belongs to this provider for (int i=0; i