2017-08-22 45 views
0

嗨我有一個簡單的小部件顯示消息未讀計數,我每隔幾秒觸發一次小部件更新(通過服務和AppWidgetProvider),並且widgetProvider onUpdate每隔幾秒用新值正確調用但小部件視圖在第一次更新後不會更新多次,那麼可能會導致問題出現? 這裏的的onUpdate代碼被觸發,但不工作提前不止一次Android Widget不更新不止一次

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); 
     } 

感謝您的幫助

回答

2

如果您使用的服務的話,試試這個

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

雖然你的android:updatePeriodMillis設置爲20秒,最小的實際時間是30分鐘。因此,如果您在測試期間沒有等待30分鐘以查看是否有更新,則需要等待更長時間。

+0

的onUpdate被調用每5秒但它不更新,我使用的服務因此Android:updatePeriodMillis是不是重要的,是嗎?我的意思是這是因爲onUpdate是被稱爲但是該視圖沒有更新 – Mahan