从活动/服务/接收者以编程方式更新小部件

我知道这是有可能的,但我想不出一种从主要活动中触发小部件更新的方法。我没有可以广播的一般意图吗?



MMMHUHU
浏览 320回答 3
3回答

ITMISS

如果您正在使用AppWidgetProvider,您可以更新这样说:Intent intent = new Intent(this, MyAppWidgetProvider.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: int[] ids = AppWidgetManager.getInstance(getApplication())    .getAppWidgetI‌ds(new ComponentName(getApplication(), MyAppWidgetProvider.class));intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids);sendBroadcast(intent);

慕的地10843

如果您正在使用使用诸如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(),您可以强制窗口小部件项实时获取任何新数据。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android