当从手机浏览器上下载图片到手机上后,图库里面不会及时更新,而要等上好几分钟才会自动刷新,而其他图片APP如“快图”就能及时更新。其他情况,比如说通过小米手机自带的文件管理删除图片、把图片复制到sd卡上,图库也是不能立即更新的。
但是如果用RootExplorer来做复制/删除的话(手机已root),图库就能立即更新。
Gallery2的代码看了一些,还是不明白原因,求高人指教。
当从手机浏览器上下载图片到手机上后,图库里面不会及时更新,而要等上好几分钟才会自动刷新,而其他图片APP如“快图”就能及时更新。其他情况,比如说通过小米手机自带的文件管理删除图片、把图片复制到sd卡上,图库也是不能立即更新的。
但是如果用RootExplorer来做复制/删除的话(手机已root),图库就能立即更新。
Gallery2的代码看了一些,还是不明白原因,求高人指教。
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
这个问题是由于Gallery2的缓存机制导致的。在Android中,如果你从网络上获取的数据,例如图片,会被存储在一个叫做"缓存"的地方。如果这个数据没有被使用过,那么它就会一直存在于缓存中,直到你再次访问时才被重新加载。
然而,如果你尝试从Gallery2中删除或移动一个图片,然后重新打开Gallery2,你会发现这个图片仍然不会自动更新。这是因为这些操作并不会触发Gallery2的更新机制。
解决这个问题的方法是,当你想要更新图片时,你可以先清除所有缓存中的图片,然后再重新加载Gallery2。这样,图片就会被正确地更新了。
以下是一个简单的示例:
private void clearCache() {
try {
// 这里是你清理缓存的方法
Log.d("Gallery2", "Clearing cache");
} catch (IOException e) {
e.printStackTrace();
}
}
然后,在你需要更新图片的时候,调用这个方法:
public void updateImage(int id, Uri uri) {
try {
// 这里是你更新图片的方法
Log.d("Gallery2", "Updating image with ID: " + id);
gallery.updateImage(id, uri);
} catch (Exception e) {
e.printStackTrace();
}
}
希望这能帮助到你!