I had a similar problem, and I decided to reset the thread to zero.
I tried my code in an emulator (SDK 16), changing the quit() method as follows:
public void quit() { mThread.quit(); mThread = null;
I checked in DDMS that the leak effectively stopped. Removing the line, the leak is returning.
- EDITED -
I tried this also in a real device using SDK 10 and I set the results below.
Did you try to reset the thread in the test code or in your full code? He throws a test code, does not flow after zeroing the thread, neither in the real device, nor in the emulator.
Screenshot after initial launch (7.2 MB allocated / used: 4.6 MB):

Screenshot after several restarts (7.2 MB allocated / used: 4.6 MB):

Screenshot after several very fast restarts and rotational time of the device server (allocated 13.2 MB / used: 4.6 MB):

Although the memory allocated on the last screen is much higher than the original memory, the allocated memory remains 4.6 MB, so it does not leak.
source share