我知道这是可能的,但我想不出一种方法来从主活动中触发我的小部件的更新。有没有一些我可以广播的一般意图?
发布于 2013-01-10 19:32:48
因此,要从活动中更新小部件,您可以这样做:
Intent intent = new Intent(this, DppWidget.class);
intent.setAction("android.appwidget.action.APPWIDGET_UPDATE");
int ids[] = AppWidgetManager.getInstance(getApplication()).getAppWidgetIds(new ComponentName(getApplication(), DppWidget.class));
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS,ids);
sendBroadcast(intent);
适用于我:)
发布于 2014-03-06 05:36:26
试试这个:
int[] ids = AppWidgetManager.getInstance(getApplication()).getAppWidgetIds(new ComponentName(getApplication(), MyWidget.class));
MyWidget myWidget = new MyWidget();
myWidget.onUpdate(this, AppWidgetManager.getInstance(this),ids);
发布于 2014-07-02 09:19:34
如果您正在使用使用ListView、GridView或StackView等集合的小部件来更新小部件的项,请执行以下操作:
Context context = getApplicationContext();
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
ComponentName thisWidget = new ComponentName(context, StackWidgetProvider.class);
int[] appWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetIds, R.id.stack_view);
使用此方法notifyAppWidgetViewDataChanged(),您可以强制小部件项实时获取任何新数据。
https://stackoverflow.com/questions/3455123
复制相似问题