图库缩略图未更新

时间:2014-05-30 08:32:40

标签: android image thumbnails android-mediascanner

所以这是场景

遍历文件夹,并用另一组图像替换所有图像。

我的期望:我的画廊中的图片以及它的缩略图。

我得到的结果:当我打开我的画廊时,旧图像缩略图仍然存在。当我打开图像时,会出现该图像的替换版本。为了使它更奇怪,一些图像,当你打开它们时,会快速闪现上一张原始图像,然后是替换版本,如果你放大那张照片,“惊喜”就是那张旧照片再次(注意:这只是一些图像。 - 不是全部)。 但是,所有图像都没有更新的缩略图。

给它10分钟和bam !,所有图像都刷新了,没有旧的原始图像。

不知道为什么它不能立即做到。

我也按照这里的说明操作。但同样的问题仍然存在。Trigger scan whole folder最新的API除了系统之外不允许扫描整个文件夹,因为有些应用程序扫描了一个文件夹,因为只有一个图像发生了变化,从而耗尽了电池寿命。

我的代码

//originalImagesList is the list of filepaths for all the images in a specific folder
for (String s :originalImagesList)
{
    try
    {
        File checkIfFile = new File(s);
        //replacementAppImg contains a list of images used to replace other images with
        Log.v(TAG, "Moving file From Replace - " + replacementAppImg.get(1));
        Log.v(TAG, "Moving file to Replace - " + s);

        InputStream in = new FileInputStream(replacementAppImg.get(1)); //From where
        OutputStream out = new FileOutputStream(s); //To where

        //Copy the bits from instream to outstream
        byte[] buf = new byte[1024];
        int len;
        while ((len = in.read(buf)) > 0) {
            out.write(buf, 0, len);
        }
        in.close();
        out.close();

        Intent mediaScannerIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
        //checkIfFile is the new replaces image that i want to refresh/check
        Uri fileContentUri = Uri.fromFile(checkIfFile);
        mediaScannerIntent.setData(fileContentUri);
        CustomSettings.getCustomAppContext().sendBroadcast(mediaScannerIntent);
    } catch (Exception ex) {
        Log.v(TAG2,"Exception 1 - "  + ex.toString());
    }
}

1 个答案:

答案 0 :(得分:0)

必须在主UI线程上完成。

完成任何线程中的任何其他位置或意图无法工作