所以我有一个很好的刷新的应用程序小部件,将一个新的位图加载到

ImageView定期像钟表.然后,在某个时候,默默地,它会停止更新.我可以从日志中和从我的代码查询的服务器上的活动中得知,小部件实际上仍然会继续定期启动(通过onReceive()捕获的广播,并按预期的方式进行其他的操作.不会发生小部件内容没有更新.

所以,在窗口小部件启动时执行的代码中,我正在创建一个新的RemoteView并添加东西,包括通过remoteViews.setImageViewBitmap(imageViewID,bmp)加载一个新的位图,然后最后调用appWidgetManager.updateAppWidget(appWidgetId,remoteViews)来更新小部件内容.工作很好,直到它停止工作.

我不知道要发布什么代码,因为该东西在99%的时间内工作正常,但是偶尔updateAppWidget()停止工作,没有明显的理由.似乎这是一个系统问题,而不是我的代码中的错误,但我可能是错误的.

似乎可能提示这一点的唯一的事情是连接的变化,例如从无信号到WiFi,也许频繁的这种变化.在这种情况下,似乎会发生更多的事情.

一旦小部件冻结,唯一解冻它的是重新启动设备.不重新启动,即使删除窗口小部件并添加新窗口也不起作用.事实上,添加一个新的结果会导致一个死的窗口小部件甚至不响应点击打开“配置活动”,大概是因为remoteViews.setOnClickPendingIntent(R.id.widget,configPendingIntent)被忽略,就像远程视图中的其他内容一样我仔细构造并发送到appWidgetManager.updateAppWidget().

这似乎是很多人在这里所描述的:

而且似乎还没有已知的治疗方法. https://code.google.com/p/android/issues/detail?id=28216#c56的帖子似乎提供了一些承诺,但是我已经尝试在各个地方调用AppWidgetHost.startListening(),包括定期重复的闹钟来查看我是否可以启动该小部件,但没有任何效果.

而其他用户(而不是开发人员)似乎也看到这个问题:@L_301_3@

有任何想法吗?慢慢地让我疯了!