0

资源在没有观察者时是否被释放?我有一个场景,我想缓存一些图像,但显示它们的视图可能会来来去去。如果我使用 RemoteImageView 来处理自己对 URL 上键入的图像的观察,但用户来回切换视图导致视图被重用,那么它会丢失正确图像的跟踪。

创建一个专用的 Service 和 EntityCache 以确保图像不会立即从缓存中刷新是否合理?

任何其他建议将不胜感激。谢谢

4

1 回答 1

0

资源一直存在于内存中,直到 (1) 发生内存不足事件或 (2) 您达到服务的最大缓存大小。

此时,资源引用变弱,这会导致任何当前未使用的资源被释放。然而,如果一个资源有任何观察者,并且如果这些观察者的所有者没有被释放,那么服务就会挂在该资源上。

Siesta 用户指南的内存管理部分对此进行了广泛讨论。

于 2018-02-23T18:32:37.093 回答