xiefei890721 2014-10-08 02:54 采纳率: 0%
浏览 1127

Android原生图库应用Gallery2不自动更新的问题

当从手机浏览器上下载图片到手机上后,图库里面不会及时更新,而要等上好几分钟才会自动刷新,而其他图片APP如“快图”就能及时更新。其他情况,比如说通过小米手机自带的文件管理删除图片、把图片复制到sd卡上,图库也是不能立即更新的。
但是如果用RootExplorer来做复制/删除的话(手机已root),图库就能立即更新。

Gallery2的代码看了一些,还是不明白原因,求高人指教。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 20:09
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题是由于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();
        }
    }
    

    希望这能帮助到你!

    评论

报告相同问题?