0

我一直在开发一个应用程序,其中包括使用设备相机。在我拍摄图像并将其保存在 SD 卡上后,我想通过 android 的媒体数据库获取它的缩略图。所以,我必须启动 MediaScanner 让系统知道我的图像,我做到了。

但是,在MediaScannerConnectionClient完成扫描之后,可以在这里知道

        @Override
        public void onScanCompleted(String path, Uri uri) {

            if (mediaScanConn.isConnected()) {
                mediaScanConn.disconnect();

            }
        }`

数据库更新好像没有正确完成,我的手机大约需要800ms才能完成这个过程,我怎么知道数据库什么时候完成了更新?请帮助我,如果您能发布您的代码将是最好的,非常感谢!

4

1 回答 1

1

即使图片信息插入数据库已经完成(与扫描目录相同),您仍然不能保证缩略图创建也完成。缩略图创建实际上是在不同的线程上运行的,因为有时从文件中提取/解码缩略图需要一些时间,尤其是对于视频文件。

当我检查Android相机应用程序源代码时,似乎它不是在等待将内容信息插入数据库时​​生成的缩略图,而是在应用程序内部生成缩略图。这是因为,如果用户在 MediaScanner 仍在后台运行时(刚启动或挂载 SD 卡后)拍照,它将被放在队列的末尾,这意味着需要时间您的图像将被处理。

于 2012-01-19T01:08:29.057 回答