在 Android SDK 31 及更高版本中,我在通知中更新 RemoteViews 时遇到问题。我使用包含三个 ProgressBar 元素(A、B 和 C)的自定义 RemoteViews 布局。使用 setCustomHeadsUpContentView(remoteView) 显示布局。
在 SDK 31 之前,即使我每秒刷新进度条超过 10 次,通知也能顺利更新。具体来说:
但是,从 SDK 31 开始,当 ProgressBar A 频繁更新时,ProgressBar B 和 C 的不确定动画会随着 RemoteView 的每次更新而不断重置为初始状态。这会导致 B 和 C 的动画出现抖动,使不确定状态看起来被中断。
有没有办法只更新RemoteViews中的ProgressBar A而不影响ProgressBar B和C,以便它们不确定的动画继续不间断?
存在与问题详细信息中描述的尝试相同的尝试。
已解决: A、B 和C 被分成单独的RemoteView 实例和NotificationCompat.Builder 对象。在其构建器中使用 .setGroup() 和 .setGroupSummary() 将 A 指定为父通知。使用 .setGroup() 将 B 和 C 分配到与 A 相同的组。根据需要通过notify()或其他通知更新机制处理更新。