由AppWidgetProvider扩展的类的onReceive()中的updatePeriodMillis不起作用

时间:2012-11-23 12:02:40

标签: android appwidgetprovider

不确定这是否会被另一个帖子回答,但是一段时间寻找答案,我没有找到答案。

我实现了一个应用小部件,每隔30分钟显示一些文本,但在我点击小部件之前它没有更新。 这是我的onUpdate方法:

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) 
      {
            // Get all ids
            ComponentName thisWidget = new ComponentName(context, MyWidgetProvider.class);
            int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
            Calendar getToday = Calendar.getInstance();
            for (int widgetId : allWidgetIds) 
            {
                  int number = (new Random().nextInt(100));

                  RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
                  // Set the text
                  String n = ""+number;
                  remoteViews.setTextViewText(R.id.update, n);
                  remoteViews.setTextColor(R.id.update, Color.BLUE);

                  // Register an onClickListener
                  Intent intent = new Intent(context, MyWidgetProvider.class);

                  intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
                  intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);

                  PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
                  remoteViews.setOnClickPendingIntent(R.id.update, pendingIntent);
                  appWidgetManager.updateAppWidget(widgetId, remoteViews);

            }

我的代码有什么问题?任何人都可以帮助我。提前谢谢

已添加:

<appwidget-provider 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:updatePeriodMillis="110000" 
    android:initialLayout="@layout/widget_layout" 
    android:minHeight="72dp"
    android:minWidth="300dp">
</appwidget-provider>

1 个答案:

答案 0 :(得分:2)

即使您的updatePeriodMillis指定更频繁的间隔,更新也不会每30分钟发生一次。请参阅AppWidgetProviderInfo doc