我有一个运行良好的基于ListView的小部件,它依赖于JSON Web服务调用来填充自身。我有一个刷新按钮,该按钮效果很好,可以从网络上重新加载。我通过使用自定义广播来做到这一点,该广播随后依次调用onDataSetChanged()和updateAppWidget()。我发现的是,当Android自动更新窗口小部件时(基于为其设置XML定义的时间间隔),似乎仅调用updateAppWidget(),而我的onDataSetChanged()函数从不运行,从而导致更新的时间戳(我在每个updateAppWidget()调用中进行更新),但数据已过时。
如何强制Android以给定的时间间隔调用或触发onDataSetChanged()?
最佳答案
原来我需要在AppWidgetManager.notifyAppWidgetViewDataChanged(widgetId, view)
方法中调用AppWidgetProvider.onUpdate()
。