2017-08-22 46 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