Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ContentResolver.query始终返回相同的数据_Android_Search_Invalidation - Fatal编程技术网

Android ContentResolver.query始终返回相同的数据

Android ContentResolver.query始终返回相同的数据,android,search,invalidation,Android,Search,Invalidation,我有一个视频播放器应用程序,带有文件浏览器,列出SD卡上的所有视频 源代码 使用ContentResolver可以按预期工作,但如果卡上的文件发生更改,它不会更新。我不是说自动,而是在视图/应用程序重新启动后。即使重新安装应用程序也没有帮助,仍然显示相同的文件。已删除的视频文件在PC上不可见,也无法播放(此视频无法播放(翻译)) 我转储了数据,问题不在视图缓存或其他地方。我自己没有实现任何缓存,也没有找到任何相关内容。多谢各位 代码: 编辑1[14-03-2013]: 我尝试将number+“=

我有一个视频播放器应用程序,带有文件浏览器,列出SD卡上的所有视频

源代码

使用ContentResolver可以按预期工作,但如果卡上的文件发生更改,它不会更新。我不是说自动,而是在视图/应用程序重新启动后。即使重新安装应用程序也没有帮助,仍然显示相同的文件。已删除的视频文件在PC上不可见,也无法播放(此视频无法播放(翻译))

我转储了数据,问题不在视图缓存或其他地方。我自己没有实现任何缓存,也没有找到任何相关内容。多谢各位

代码:

编辑1[14-03-2013]:


我尝试将
number+“=”+number
添加到ORDER或WHERE子句中,作为一个潜在的查询缓存buster,但没有效果(尽管它可能被优化器作为一个无用的子句删除)。这次我使用不同的证书从不同的机器重新安装了应用程序,但查询结果保持不变,列出了当前不存在的文件。

您应该首先调用
cursor.moveToFirst()

因此,游标迭代循环应该如下所示

if (cursor.moveToFirst()) {
    do {
        // cursorIndex = cursor.getColumnIndexOrThrow, etc...
    } while (cursor.moveToNext());
}

您应该首先调用
cursor.moveToFirst()

因此,游标迭代循环应该如下所示

if (cursor.moveToFirst()) {
    do {
        // cursorIndex = cursor.getColumnIndexOrThrow, etc...
    } while (cursor.moveToNext());
}

顺便说一句,MediaStore不会自动计算MediaStore.Video.Media.DURATION,因此它通常为0,除非另一个应用程序使用有效值更新了MediaStore db记录。谢谢,我会记住它…并编写代码。到目前为止,我尝试的每个文件都已正确填充。顺便说一句,MediaStore不会自动计算MediaStore.Video.Media.DURATION,因此它通常为0,除非另一个应用程序使用有效值更新MediaStore db记录。谢谢,我会记住它…并编写代码。到目前为止,我试过的每一个文件都填写正确,现在工作正常,所以我认为它解决了问题。。。谢谢现在一切正常,所以我想它解决了。。。谢谢