gpt4 book ai didi

java - 通知远程 View 中的位图无法回收

转载 作者:太空狗 更新时间:2023-10-29 14:57:51 24 4
gpt4 key购买 nike

我想编写 mp3 播放器应用程序。在通知中显示音乐专辑

代码如下:

mCoverBitmap = MusicModel.getAlbumArt(musicItem.getUri());
if (mCoverBitmap != null) {
mNormalRemoteViews.setImageViewBitmap(R.id.notification_image, mCoverBitmap);
} else {
mNormalRemoteViews.setImageViewResource(R.id.notification_image, R.drawable.default_album);
}

但是我换了很多音乐后导致内存不足。所以我回收了 mCoverBitmap。但是它崩溃了。java.lang.IllegalStateException: 无法打包回收的位图

然后我尝试缓存位图。并在下次我们需要通知时回收它。

    BitmapUtil.recycleBitmap(mCoverCache);
mCoverCache = mCoverBitmap;
mCoverBitmap = MusicModel.getAlbumArt(musicItem.getUri());
if (mCoverBitmap != null) {
mNormalRemoteViews.setImageViewBitmap(R.id.notification_image, mCoverBitmap);
} else {
mNormalRemoteViews.setImageViewResource(R.id.notification_image, R.drawable.default_album);
}

但它会导致相同的异常。如何回收位图?

最佳答案

为您的应用程序重新使用相同的远程 View 会导致内存不足错误。因此,与其回收,不如重新创建远程 View 。 https://groups.google.com/forum/m/#!topic/android-developers/qQ4SV5wL7uM

关于java - 通知远程 View 中的位图无法回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29768865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com