Je travaille sur un widget Android et il fonctionne très bien au niveau API 5 ou supérieur. Il n'est pas pris en charge du tout au niveau API 1 ou 2. Il devrait fonctionner parfaitement à 3 et 4, mais pour une raison quelconque, le widget ne se met pas à jour.Pourquoi le widget de mon application ne se met-il pas à jour dans l'API 3 ou 4?
La méthode onUpdate est appelée et s'exécute sans erreur; cependant, en 3 et 4 cela ne change pas le texte du widget. Je suis à peu près perdue. Des pensées?
@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);
}
Avez-vous débogué le widget? Obtenez-vous le texte comme prévu? L'intention en attente fonctionne-t-elle? L'onUpdate est-il exécuté? – Kaj
Ouais, j'ai attaché le débogueur et tout a fonctionné sauf le changement de texte. Je pourrais changer les couleurs, les tailles, les comportements, et tout cela, mais je ne pouvais pas changer le texte. Je ne l'ai pas essayé en 1.5 ou 1.6 depuis très longtemps car cette version devient de plus en plus obsolète. –
Étrange. J'ai des widgets qui fonctionnent avec 1.5+, et n'ont eu aucun problème avec la mise à jour des textes. – Kaj