Я вижу две возможности (может быть хорошо больше).
Первое (наиболее вероятное) верно для всех объектов Java: только потому, что вы установили ссылку на null
не означает автоматически, что объект, стоящий за ним, будет собирать мусор.
Если сам объект SoundPool
содержит ссылку на два объекта потока, ни один из трех не обязательно будет GC'-удален до пробелатребуется (хотя это, конечно, зависит от того, насколько агрессивен ваш сборщик).
Второе (менее вероятное) - это то, что Android может быть достаточно умен для кеширования потоковых (или даже SoundPool
) объектов в случаеони должны быть использованы снова.Они могут сделать это как оптимизацию производительности, если создание объекта обходится дороже, чем повторное циклирование объекта.
В этом случае у них все равно будет ссылка на объекты где-то в кэше, и они не будутсчитается правомочным на сборку мусора.