gpt4 book ai didi

java - 垃圾收集和 Picasso 的问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:56 26 4
gpt4 key购买 nike

我正在尝试在 Google map 标记的信息窗口中设置一个 ImageView,并从 this answer 复制了代码非常准确,只是我的 InfoWindowAdapter 不是匿名内部类(它只是 Activity 的内部类)。这以前是有效的,但由于某种原因它已停止工作 - 回调中的 onSuccess 方法未被调用,因此 InfoWindow 仅在第二次打开时显示图像。

查看 Picasso 的日志,我收到类似于 Main canceled [R20]+374ms target got garbage collected 的消息。我认为这可能是因为回调正在被 gc 处理,并尝试将其设为最终状态,并将对象保存在类字段中(这些都不起作用,尽管也许我做错了?)

这里可能发生了什么,我该如何解决?错误消息中的 target 是指回调,还是指作为参数传递给回调构造函数的标记?

另一件奇怪的事情是,有时在首次打开 InfoWindow 时图像会正确加载 - 我试图找出原因,但基本上我有很多标记以及它们的图像是否在第一次打开时正确加载似乎不一致。首次打开信息窗口时,有些(大多数)似乎永远无法正确加载。

[edit] 这是在一堆代码被合并到那个 Activity 之后,所以它会不会是一个内存的东西? (与我没有遇到此问题时相比,现在完成了更多处理)

[编辑 2] 我与 Glide 有完全相同的问题!!可能是垃圾回收?

最佳答案

我不熟悉那个答案,但是当你没有强烈引用它时,Target 可以被 gc'ed。

这是因为 Picasso 持有弱引用的 Target 实例。

你应该在 Picasso 之外的某个地方持有 Target 实例。

检查这个问题:https://github.com/square/picasso/issues/352

关于java - 垃圾收集和 Picasso 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29273633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com