Скользите исходный код, как работал подсчет ссылок в activeResource? - PullRequest
0 голосов
/ 04 февраля 2019

Согласно: https://bumptech.github.io/glide/doc/resourcereuse.html

Увеличение счетчика ссылок

Каждый вызов into(), который загружает ресурс, увеличивает счетчик ссылок для этогоресурс по одному.Если один и тот же ресурс загружен в два разных Target s, после завершения обеих загрузок он будет иметь счетчик ссылок, равный двум.

Уменьшение счетчика ссылок
Счетчик ссылок уменьшаетсякогда вызывающие сообщают, что они сделали с ресурсом:

  1. Вызов clear() на View или Target, в который был загружен ресурс.
  2. Вызов into() на View или Target с запросом нового ресурса.

Если представление создано, скользите в него res, и представление уничтожается и перерабатывается,Счетчик никогда не может уменьшиться, и ActiveResources будет хранить растровое изображение вечно.

Какой трюк используется для подсчета ссылок?

1 Ответ

0 голосов
/ 05 февраля 2019

Он использует WeakReference в ActiveResource, поэтому он не вызовет утечку памяти.

...