如何在窗口小部件中使用onAppWidgetOptionsChanged()?

时间:2012-12-27 23:29:19

标签: android

我想在每次调整大小时更新我的​​小部件。我发现这是在:

完成的

onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions)

但我无法找到如何更新其中的小部件。我尝试通过调用我放在onUpdate()中的所有内容来重绘窗口小部件,但它不起作用。我怎样才能使用这个包呢?

1 个答案:

答案 0 :(得分:32)

  

我想在每次调整大小时更新我的​​小部件。

酷!

  

我发现这是在onAppWidgetOptionsChanged()

中完成的

更准确地说,如果您在<intent-filter>,Android 4.1及更高版本的设备上执行了正确的操作,则可以通过onAppWidgetOptionsChanged()找到有关调整大小事件的信息。

  

但我无法找到如何更新其中的小部件。

您更新它的方式与在onUpdate()中更新它的方式相同。使用适当的updateAppWidget()AppWidgetManager上致电RemoteViews

  

我尝试通过调用放在onUpdate()中的所有内容来重绘窗口小部件,但它无效。

“它不起作用”并不是对症状的特别有效的描述。

  

如何使用捆绑包?

对于名为Bundle的{​​{1}},您可以通过以下方式找到新的尺寸范围:

newOptions

例如,this sample project包含newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH) newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH) newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT) newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT) ,只是将这些值投入字符串并使用它来更新AppWidgetProvider。结果如下:

Resize Widget, During Resize Operation