首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从活动/服务/接收方以编程方式更新小部件

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

Stack Overflow用户
提问于 2010-08-11 11:43:03
回答 8查看 71.1K关注 0票数 103

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

EN

回答 8

Stack Overflow用户

发布于 2013-01-10 19:32:48

因此,要从活动中更新小部件,您可以这样做:

代码语言:javascript
复制
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);

适用于我:)

票数 33
EN

Stack Overflow用户

发布于 2014-03-06 05:36:26

试试这个:

代码语言:javascript
复制
int[] ids = AppWidgetManager.getInstance(getApplication()).getAppWidgetIds(new ComponentName(getApplication(), MyWidget.class));
        MyWidget myWidget = new MyWidget();
        myWidget.onUpdate(this, AppWidgetManager.getInstance(this),ids);
票数 26
EN

Stack Overflow用户

发布于 2014-07-02 09:19:34

如果您正在使用使用ListView、GridView或StackView等集合的小部件来更新小部件的项,请执行以下操作:

代码语言:javascript
复制
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(),您可以强制小部件项实时获取任何新数据。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3455123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档