Pracuję nad widgetem Android i działa świetnie na poziomie API 5 lub wyższym. To nie jest obsługiwane w ogóle na poziomie API 1 lub 2. Powinno działać absolutnie dobrze w wersjach 3 i 4, ale z jakiegoś powodu widget nie aktualizuje się.Dlaczego mój widget aplikacji nie jest aktualizowany w interfejsie API 3 lub 4?
Metoda onUpdate jest wywoływana i wykonywana bez błędów; jednak w 3 i 4 nie zmienia tekstu widżetu. Jestem prawie zagubiony. jakieś pomysły?
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
DataAccess helper = new DataAccess(context);
String text = helper.getCurrentText();
helper.close();
if (text != null)
views.setTextViewText(R.id.widget_text, text);
Intent intent = new Intent(context, WidgetDetailsActivity.class);
PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0);
views.setOnClickPendingIntent(R.id.widget, pending);
appWidgetManager.updateAppWidget(appWidgetIds, views);
}
Czy debugujesz widżet? Czy otrzymujesz tekst zgodnie z oczekiwaniami? Czy oczekująca zamiar działa? Czy usługa onUpdate jest w ogóle wykonywana? – Kaj
Tak, dołączyłem debugger i wszystko działało, z wyjątkiem zmiany tekstu. Mógłbym zmienić kolory, rozmiary, zachowania i wszystko inne, ale nie mogłem zmienić tekstu. Nie próbowałem go w 1.5 lub 1.6 w naprawdę długim czasie, ponieważ ta wersja staje się coraz bardziej przestarzała. –
Dziwne. Mam widżety, które działają z wersją 1.5+ i nie miały żadnych problemów z aktualizowaniem tekstów. – Kaj