假设:我从我的 SD 卡中删除了一个项目,然后我卸载了存储卡。
当 Android 重新扫描我的 SD 卡以进行更改时会发生什么?在 MediaStore 中,每一行都有一个 _ID,所以在我删除一个项目后,这个 _ID 会发生什么:
- 它是否保留在 MediaStore 中,是否与另一个项目相关联,或者,
- 它被永久删除?
假设:我从我的 SD 卡中删除了一个项目,然后我卸载了存储卡。
当 Android 重新扫描我的 SD 卡以进行更改时会发生什么?在 MediaStore 中,每一行都有一个 _ID,所以在我删除一个项目后,这个 _ID 会发生什么:
我有同样的问题,找出答案的最好方法是做测试。
根据我所看到的,它是这样工作的:
1) id 从 1 开始,当媒体扫描仪添加新图像或视频时递增 1
2)如果您删除文件并且 mediascanner 还不知道,您将尝试从 mediastore 获取,记录仍然存在
3) 一旦 mediascanner 发现该文件消失,它将从 mediastore db 中删除记录
4) 将不会使用已删除记录的 id,因此如果您有 id 为 1、2、3 的三个项目并删除项目 2 并添加一个新项目,则列表将类似于 1、3、4 - 所以删除的 id不会被重复使用