Okej, då är jag med. Så lösningen är att upprätta en ny remoteView på något vis.
Jag ska undersöka saken vidare!
Tack så länge.
Edit: Eftersom det följer med en context när jag trycker på knapparna använder jag den för att köra följande om remoteView är null när jag trycker på en knapp:
Kod:
remoteViews = new RemoteViews( context.getPackageName(), R.layout.widget_dark );
myWidget = new ComponentName( context, WidgetDark.class );
Nu återstår det bara att se hur "appWidgetManager" hanteras. Den följer bara med onUpdate.
Men om den är intakt borde allt vara lugnt. Eftersom det verkar gå att göra nya remoteViews.
Det tar som sagt dock massa timmar innan jag vet. Riktigt jobbig felsökning.
Edit: Okej, efter ytterligare lite googlande har jag gjort mig oberoende av alla globala variabler som är kritiska.
Slutreslutatet:
Kod:
public static void setWidgetData(Context context) {
try {
RemoteViews remoteViews = new RemoteViews( context.getPackageName(), R.layout.widget_dark );
ComponentName myWidget = new ComponentName( context, WidgetDark.class );
remoteViews.setTextViewText( R.id.widget_category_dark, getFormatedWidgetData(context, "category"));
remoteViews.setTextViewText( R.id.widget_dish_dark, getFormatedWidgetData(context,"dish"));
remoteViews.setTextViewText( R.id.widget_date_dark, date_name);
AppWidgetManager.getInstance(context).updateAppWidget( myWidget, remoteViews );
} catch (Exception e) {
Toast.makeText(context, "Kunde inte uppdatera widgeten. Starta om din telefon om du vill vara säker på att lösa problemet.", Toast.LENGTH_LONG).show();
}
}