为什么通知管理器(通知)方法在循环时对内存如此昂贵


while (key){
    builder.setNumber(++numMessages);
    manager.notify(notifyID, builder.build());
}
  • 这行代码使设备滞后并增加分配的记忆迅速。
  • 这是我在显示媒体播放器时间时遇到的问题的小图片(音频)在通知中,所以我必须每 100 更新一次毫秒。
  • 对此问题有什么建议或解决方案吗?

通知涉及将所有数据(包括每个位图)从您的应用程序发送到 Android 系统。在 Android 7.0 之前,这会导致数据在发送之前被完全复制。

当然,媒体播放器应该使用MediaStyle通知,这些通知是专门为播放控件等而设计的。它们不显示当前的播放时间。

但是,如果您确实需要显示当前时间,则应改用setUsesChronometer(true),它将使用setWhen设置的时间更改为计时器的开始,该计时器将每秒自动更新,而无需每秒调用notify

最新更新