LauncherActivity中Widget停止更新后重启,调用updateAppWidget无法同步最新数据的问题求助
LauncherActivity中Widget停止更新后重启,调用updateAppWidget无法同步最新数据的问题求助
各位大佬好,我遇到了一个Android桌面Widget更新的棘手问题,折腾好久没头绪,想请大家帮忙分析下:
我的系统里,LauncherActivity是桌面主界面,负责处理Widget的更新逻辑:
- 在
onStart()方法中调用AppWidgetHost.startListening() - 在
onStop()方法中调用AppWidgetHost.stopListening()
问题场景是这样的:
当切换到某个Widget对应的应用时,LauncherActivity会触发onStop(),Widget的更新也就随之停止了。之后我在该应用里修改了一些数据,切回LauncherActivity时,onStart()会被调用,我这里会触发一个内部Intent,最终调用appWidgetManager.updateAppWidget()通知Widget Provider更新,但Widget并没有显示最新的数据。只有把这个Widget从桌面移除再重新添加,才能正常显示更新后的内容。
我自己先做了排查:
一开始以为是startListening()和updateAppWidget()调用间隔太短,Widget Provider还没准备好接收更新,但就算给updateAppWidget()加了2秒延迟再调用,问题依然存在。
目前实在找不到问题根源了,有没有大佬遇到过类似情况?或者能给我一些排查的方向?
备注:内容来源于stack exchange,提问作者Dev_Cob
相关产品推荐
相关产品推荐

