2017-08-22 4 views
0

Salut J'ai un widget simple indiquant le nombre de messages non lus et je lance la mise à jour du widget toutes les quelques secondes (Via Service et AppWidgetProvider) et le widgetProvider onUpdate est appelé correctement avec la nouvelle valeur toutes les quelques secondes mais la vue de widget ne met pas à jour plus d'une fois après sa première mise à jour, ce qui peut causer le problème? est ici le code onUpdate qui est DECLENCHE mais ne fonctionne pas plus d'une foisAndroid Widget ne pas mettre à jour plus d'une fois

for (int i = 0; i < count; i++) { 
     AppWidgetManager manager = AppWidgetManager.getInstance(context); 
     RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.notification_widget_count); 
     if (unreadCount > 0) { 
      remoteViews.setViewVisibility(R.id.notification_widget_count_root, View.VISIBLE); 
      // remoteViews.setImageViewBitmap(R.id.notification_widget_count_image_text, M.getFontBitmap(context, unreadText, context.getResources().getColor(R.color.white), 25)); 
      remoteViews.setTextViewText(R.id.notification_widget_count_text, new Date().getSeconds()+""); 
      Intent mainIntent = new Intent(context, MainActivity.class); 
      mainIntent.setAction(ACTION_WIDGET_CLICK_MAIN); 
      PendingIntent mainPendingIntent = PendingIntent.getActivity(context, 0, mainIntent, 0); 
      remoteViews.setOnClickPendingIntent(R.id.notification_widget_count_main_root, mainPendingIntent); 
      manager.updateAppWidget(appWidgetIds[i],remoteViews); 
      Log.d("FFFF-NotificationWidget", "Updating Widget Info..."); 
     } else { 
      remoteViews.setViewVisibility(R.id.notification_widget_count_root, View.GONE); 
      manager.updateAppWidget(appWidgetIds[i], remoteViews); 
     } 

merci d'avance pour votre aide

Répondre

2

Si vous utilisez un service essayez ce

ComponentName thisWidget = new ComponentName(getContext(), <ProviderClass>); 
AppWidgetManager.getInstance(getContext()).updateAppWidget(thisWidget, rempoteViews); 
0

Pendant que vous avez android: updatePeriodMillis de 20 secondes, le temps réel minimum est de 30 minutes. Donc, si vous n'avez pas attendu 30 minutes pour voir s'il y a une mise à jour pendant vos tests, vous devrez attendre un peu plus longtemps.

+0

onUpdate est appelé tous les 5 seconde, mais son pas mis à jour, je suis en utilisant le service si android: updatePeriodMillis est pas important, est-il? Je veux dire ceci Pour cela est en onUpdate est Actaully appelé, mais la vue n'est pas mise à jour – Mahan