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

时间:2017-01-09 00:43:55

标签: android

while (key){
    builder.setNumber(++numMessages);
    manager.notify(notifyID, builder.build());
}
  • 这行代码使设备滞后并增加分配 记忆很快。
  • 这是我在播放媒体播放时间方面的问题 (音频)在通知中,我必须每100更新一次 毫秒。
  • 针对此问题的任何建议或解决方案?

1 个答案:

答案 0 :(得分:3)

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

当然,媒体播放器应该使用专为播放控件等设计的MediaStyle notifications。他们没有显示当前的上场时间。

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