我遇到了一种可以解决的情况,但正在寻找更好的方法。这是:
- 我在 Android 设备中有 8,000 多首歌曲。也就是说,Android 的 Audio.Media 有 8,000+ 行。
- 也就是说,我有一个包含 2,000 个路径的数组,我需要在数据库中查询对应文件的其他列。
现在我用resolver.query(URI, "_data IN (?,?,?........,?)", selectionArgs, null);
但如果?
600 或更多,查询将失败,因为 WHERE 子句变得太长。
所以我把2000条路径分成四部分,分别查询并将需要的信息保存在其他地方。通过四次查询,我可以得到结果。但这会消耗大量内存,如果我可以通过一个查询来完成,它会比4快。
有没有人有更好的方法来做到这一点?谢谢!