我有一个带有配置活动的应用程序小部件,我想在单击活动中的“确定”按钮时触发小部件的更新。我写了这段代码:
Intent initialUpdateIntent=new Intent(AppWidgetManager.
ACTION_APPWIDGET_UPDATE);
initialUpdateIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
widgetID);
sendBroadcast(initialUpdateIntent);
但由于某种原因,onUpdate 函数没有被调用!有谁知道可能是什么问题?
谢谢。
请尝试以下操作:
public static void updateWidgets(Context context) {
Intent intent = new Intent(context.getApplicationContext(), DayActivitiesAppWidget.class);
intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
// Use an array and EXTRA_APPWIDGET_IDS instead of AppWidgetManager.EXTRA_APPWIDGET_ID,
// since it seems the onUpdate() is only fired on that:
AppWidgetManager widgetManager = AppWidgetManager.getInstance(context);
int[] ids = widgetManager.getAppWidgetIds(new ComponentName(context, DayActivitiesAppWidget.class));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
widgetManager.notifyAppWidgetViewDataChanged(ids, android.R.id.list);
}
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids);
context.sendBroadcast(intent);
}
Replace DayActivitiesAppWidget
和你的AppWidgetProvider
通过这种方式,您可以更新所有小部件实例,然后您可以通过更新单个小部件实例来追踪问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)