Fix AVD memory leak

The memory leak was caused by a lingering internal listener
that held a global ref to the AVD java object when the AVD is
infinite. As a result, the native VectorDrawable Tree can
not be destroyed, and therefore leak bitmaps.

This memory leak is fixed by removing all the internal listeners
for all the unfinished AVDs when the animation context is
destroyed.

BUG: 37518414
Test: follow steps in comment #1 of the bug, and inspect memory heap.

Change-Id: Ibbd1547a083b83d0cebd8e304d9b01abda4950ef
1 file changed