具有多个映射视图的Android应用程序小部件忽略部分更新

问题描述 投票:0回答:1

我有一个带有主屏幕小部件的应用程序,是使用

RemoteViews(Map<SizeF, RemoteViews>)
构造函数创建的,因此要膨胀的布局的选择取决于小部件的大小。该地图有 2 个视图。这部分工作正常,但我还需要使用
AppWidgetManager#partiallyUpdateAppWidget()
执行此小部件的部分更新,而这似乎总是被忽略。

但是,当我使用单个非映射的

RemoteViews
实例时,它确实有效。我怀疑这个问题是由于
partiallyUpdateAppWidget()
的要求造成的:

如果小部件尚未通过

AppWidgetManager#updateAppWidget(int[], RemoteViews)

收到完整更新,则此方法将被忽略

大概“映射”

RemoteViews
获取了更新,但没有获取它所膨胀的布局,因此
partiallyUpdateAppWidget()
尝试更新的布局没有被标记为已更新,因此它被忽略。

有其他人遇到过这个问题,或者找到解决方案吗?

android android-widget
1个回答
0
投票

一位谷歌用户说:

当前行为正在按预期进行。部分更新不是 旨在用于合并树结构。在这些情况下,其 更安全的是,只推送完整的远程视图,而不是跟踪 在之前的更新中推送了哪些尺寸(因为尺寸也可以 那时已经改变了)

https://android-review.googlesource.com/c/platform/frameworks/base/+/3370144/comments/3206c3d3_c34e247a

这似乎是一个未记录的按预期工作的限制。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.