【发布时间】:2015-03-26 08:09:40
【问题描述】:
我正在尝试在 Google Maps Marker 的 InfoWindow 中设置一个 ImageView,并且已经从 this answer 复制了代码,只是我的 InfoWindowAdapter 不是匿名内部类(它只是活动的内部类)。这是以前工作的,但由于某种原因它已经停止工作 - Callback 中的 onSuccess 方法没有被调用,所以 InfoWindow 只在第二次打开时显示图像。
查看毕加索的日志,我收到类似于Main canceled [R20]+374ms target got garbage collected 的消息。我认为这可能是因为 Callback 正在被 gc'd,并尝试将其设为 final,并将对象保存在类字段中(这些都不起作用,尽管也许我做错了?)
这里可能会发生什么,我该如何解决?错误消息中的 target 是指回调,还是指作为参数传递给回调构造函数的标记?
另一个奇怪的事情是,有时在首次打开 InfoWindow 时图像会正确加载 - 我试图找出原因,但基本上我有很多标记以及它们的图像是否在第一次加载时正确加载似乎不一致。首次打开 InfoWindow 时,有一些(大多数)似乎永远无法正确加载。
[edit] 这是在一堆代码被合并到那个活动之后,所以它可能是一个记忆的东西吗? (现在完成的处理比我没有这个问题时更多)
[编辑 2] 我遇到了与 Glide 完全相同的问题!!可能是垃圾回收?
【问题讨论】:
标签: java android garbage-collection imageview picasso