如何知道MediaScanner后数据库更新何时完成?

时间:2011-11-22 02:24:29

标签: android android-mediascanner

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

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

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

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

            }
        }`

似乎数据库更新没有以正确的方式完成,我的手机上需要大约800毫秒来完成这个过程,我怎么知道数据库何时完成更新?请帮助我,最好是你发布你的代码,非常感谢!

1 个答案:

答案 0 :(得分:1)

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

当我检查Android Camera Application源代码时,似乎它没有等待将内容信息插入数据库时​​生成的缩略图,而是在应用程序内部生成缩略图。这是因为,如果用户在MediaScanner仍然在后台运行时(在启动或安装SD卡后立即)拍照,它将被放置在队列的末尾,这意味着它需要一些时间您的图片将被处理。