【问题标题】:Reconfigure Widget After It Has Been Added添加后重新配置小部件
【发布时间】:2011-06-26 18:54:03
【问题描述】:

将小部件添加到主屏幕后,如何重新打开小部件的配置活动?

以下来自 Google 搜索的代码不起作用,因为 extra 中的小部件 id 不会传递到 Activity:

String ACTION_WIDGET_CONFIGURE = "ConfigureWidget";
Intent configIntent = new Intent(context, Configuration.class);
configIntent.setAction(ACTION_WIDGET_CONFIGURE);
configIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
PendingIntent configPendingIntent = PendingIntent.getActivity(context, 0, configIntent, 0);
views.setOnClickPendingIntent(R.id.editButton, configPendingIntent);

【问题讨论】:

    标签: android configuration widget android-appwidget


    【解决方案1】:

    好的,我迟到了一年,但我只是在寻找与您相同的答案,并注意到您的代码中缺少一个标志,这是我几天前遇到的另一个关于未决问题的答案意图、附加功能和小部件。尝试更改这行代码:

    PendingIntent configPendingIntent
        = PendingIntent.getActivity(context, 0, configIntent, 0);
    

    到这里:

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

    PendingIntent 将重用与新意图匹配的现有缓存意图,并且“匹配”不考虑额外内容,因此可以忽略新的额外内容。添加FLAG_UPDATE_CURRENT 使PendingIntent 将附加内容写入缓存的意图(或类似的东西)。

    无论如何,以上内容刚刚对我有用(尽管我也使用AppWidgetManager.ACTION_APPWIDGET_CONFIGURE 作为操作名称,如果这有什么不同的话)。

    【讨论】:

      【解决方案2】:

      很遗憾,您不这样做:当前存在的小部件规范不支持通过小部件配置活动重新配置小部件。

      您可以做的是启动小部件配置活动并手动跟踪特定小部件 ID:一旦新设置到位,您就可以使用适当的管理器方法手动更新小部件。但是,您将无法使用与新小部件相同的代码路径。

      【讨论】:

        猜你喜欢
        • 2011-12-07
        • 2016-05-13
        • 2013-07-22
        • 1970-01-01
        • 1970-01-01
        • 2019-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多