我创建了一个简单的音乐播放器应用程序。到目前为止,它一直在从android.provider.MediaStore
.
ALBUM_ART
我从 的列中获取专辑封面MediaStore.Albums
。它返回专辑封面的路径,然后我为我的自定义歌曲适配器创建一个可绘制对象。
但我最近注意到了一些奇怪的事情。我所有的歌曲都在外部 SD 卡中。我从手机中取出 SD 卡,等待 MediaStore 反映更改并打开我的音乐应用程序。不出所料,所有歌曲都丢失了。
然后,我将 SD 卡放回手机中,再次等待并重新打开我的应用程序。所有歌曲再次出现,但这一次,所有专辑封面都不见了。相反,我的默认专辑封面图像正在显示,这意味着从 MediaStore 获得的专辑封面文件路径为空。
然后我在手机上打开了第三部分音乐应用程序(Musixmatch)并滚动并注意到专辑封面实际上出现了。
现在这是我真的不明白的部分。然后我再次打开我的应用程序,现在,专辑封面出现了。但是,只有我在 Musixmatch 中向下滚动到的专辑的专辑封面才显示出来。其余的又是一片空白。然后我回到 Musixmatch 并滚动浏览手机中的整个专辑列表,等待每张专辑的封面出现。然后我回到我的应用程序,正如预期的那样,现在所有专辑封面都已从 MediaStore 成功加载。
第 3 方音乐应用程序如何能够让 MediaStore 缓存专辑封面,而我的应用程序却不能?我的应用有什么不同?