android - 小部件的多个实例仅更新最后一个小部件

标签 android android-widget

我有一个 WidgetProvider 和一个 Configure Activity

当 Widget 启动时,它从配置 Activity 开始,我通过对 widgetprovider 进行自定义调用来设置它

(您会注意到来自 sdk 教程示例)

 // Push widget update to surface with newly set prefix
              AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
              AwarenessWidget.updateAppWidget(context, appWidgetManager,
                      mAppWidgetId, position);

            // Make sure we pass back the original appWidgetId
            Intent resultValue = new Intent();
            resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
            setResult(RESULT_OK, resultValue);
            finish();

我将小部件 ID 传递给函数....在小部件内部我创建了一个这样的 Intent:

  Intent configIntent = new Intent(context, Configure.class);
    configIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);

    PendingIntent pendingIntent = PendingIntent.getActivity
    (context, 0, configIntent,
    PendingIntent.FLAG_UPDATE_CURRENT);

    views.setOnClickPendingIntent(R.id.MainImage,pendingIntent);

    views.setImageViewResource(R.id.MainImage, lv_images[version]);

    appWidgetManager.updateAppWidget(appWidgetId, views);

我总是引用小部件 ID,甚至将其添加为 Intent 的额外内容 但是当我在主屏幕上获得其中两个小部件时,小部件 ID 始终引用最后放置的小部件 ID

最佳答案

我遇到了类似的问题。只需将其添加到您设置 PendingIntent 的配置 Activity 中:

Uri data = Uri.withAppendedPath(
    Uri.parse(URI_SCHEME + "://widget/id/")
    ,String.valueOf(appWidgetId));
intent.setData(data);

变量 URI_SCHEME 是一个字符串,可以是你想要的任何值。即 - “ABCD” 这会导致每个小部件都有一个唯一的 PendingIntent。

关于android - 小部件的多个实例仅更新最后一个小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4011178/

相关文章:

java - Android AsyncTask 下载 .mp3 文件 - 信息和缩略图

android - listview 和 notifydatasetchanged 在 android 中

android-widget - 可调整大小的小部件android

Android:针对所有屏幕尺寸对齐 LinearLayout 中心

android - 在android中自定义评分栏

java - ListView.getChildAt() 获取不在屏幕上的 child

android - 如何将水平 ScrollView 中的图像设置到android中的viewpager中?

java - 使用 UrlConnection 逐行读取是否考虑换行?

android - 在 SurfaceView 上居中 MoPub baner

android - 如何在 android 中创建类似下拉菜单(不是 Spinner)的东西?