首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android中以编程方式刷新时,小部件被其他内容替换

在Android中以编程方式刷新时,小部件被其他内容替换
EN

Stack Overflow用户
提问于 2012-06-24 17:50:58
回答 3查看 840关注 0票数 3

在Stack溢出的某个地方,有一天我发现了以下代码,并对我的应用程序做了一些调整:

代码语言:javascript
运行
复制
private void updateWidget() {
    AppWidgetManager widgetManager = AppWidgetManager.getInstance(ctx);
    ComponentName widgetComponent = new ComponentName(ctx, MyAppWidgetProvider.class);
    int[] widgetIds = widgetManager.getAppWidgetIds(widgetComponent);
    Intent update = new Intent();
    update.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, widgetIds);
    update.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
    ctx.sendBroadcast(update);
}

这应该以编程方式刷新应用程序小部件的所有实例。ctx是我在onCreate()中设置的Activity的上下文(this),上面的方法在ActivityonStop()方法中被调用。

不幸的是,当它被调用时,它会将应用程序的小部件替换为其他应用程序的小部件(例如AP新闻)--至少有一段时间。

怎么会发生这种事?密码有什么问题吗?

谢谢!

编辑#1:来更清楚地指出这一点:我已经为自动刷新定义了一个间隔。但除此之外,我还想不时地从Activity中更新这个小部件。This question认为这也是可能的。

编辑#2: --我刚刚看到错误的小部件只显示了几秒钟。在此之后,我自己的应用程序的小部件再次显示。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-02 12:51:21

过去,我在小部件方面遇到了一些问题,并且已经解决了它们。我真的不知道为什么我的解决方案对我有效。当它在Marco W.中工作时,我把它放在这里:我所做的就是将更新代码移动到一个服务中。当我需要更新的时候,启动服务。再说一次,我不确定,但问题已经解决了。

谢谢马可,我有更多关于Android的经验。很有趣:-)

票数 4
EN

Stack Overflow用户

发布于 2014-08-19 14:20:18

我通过使用允许更新所有小部件的notifyAppWidgetViewDataChanged方法解决了这个问题,我可以给出的解释是,该方法可以在修改它包含的数据之后更新集合视图(在我的例子中是StackView)。

票数 0
EN

Stack Overflow用户

发布于 2012-06-24 18:15:58

在小部件之外运行更新函数有什么原因吗?在我看来,使用updatePeriodMillis属性更有意义吗?您可以将该属性设置为希望小部件调用onUpdate()的频率,后者可以提供更新的信息。

http://developer.android.com/guide/topics/appwidgets/index.html#MetaData

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

https://stackoverflow.com/questions/11179795

复制
相关文章

相似问题

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