所以这是场景
遍历文件夹,并用另一组图像替换所有图像。
我的期望:我的画廊中的图片以及它的缩略图。
我得到的结果:当我打开我的画廊时,旧图像缩略图仍然存在。当我打开图像时,会出现该图像的替换版本。为了使它更奇怪,一些图像,当你打开它们时,会快速闪现上一张原始图像,然后是替换版本,如果你放大那张照片,“惊喜”就是那张旧照片再次(注意:这只是一些图像。 - 不是全部)。 但是,所有图像都没有更新的缩略图。
给它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());
}
}
答案 0 :(得分:0)
必须在主UI线程上完成。
完成任何线程中的任何其他位置或意图无法工作