What MUST go inside onDestroy()? (if anything at all)
<p>Right so here I am obsessing over memory leaks, and quite frankly not understanding what could really lead to one (and yes I've read the usual links such as <a href="http://kohlerm.blogspot.co.uk/2009/02/memory-leaks-are-easy-to-find.html" rel="nofollow">http://kohlerm.blogspot.co.uk/2009/02/memory-leaks-are-easy-to-find.html</a>).</p>

<p>I've tried to create some on purpose, for example by leaving a PhoneStateListener subclass inside my activity and opened and closed it a bazillion time, can't see anything in DDMS heap or MAT out of the ordinary. Yet on SO I read over and over again that not only it needs to be deregistered onDestroy, but also onPause (http://stackoverflow.com/questions/4607344/phonestatelistener-isnt-finished)</p>

<p>Question: is there such a list?
Bonus question: is it true that a PhoneStateListener will create leaks unless it's deregistered onPause/onDestroy etc.</p>

<p><strong>UPDATE:</strong>  I stand corrected. When re-spawning my app over and over again, even in singleinstance mode, the PhoneStateListener(s) it has registered are still alive after onDestroy was called, and start adding up. I'm currently working on an elegant way to kill them, and will post my results here.</p>

<p><strong>UPDATE2:</strong> The correct way to deregister the listener is:
   instanceOfTelephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_NONE);
... according to the API</p>

<p><strong>UPDATE3:</strong> As promised linking this to a better phrased question: <a href="http://stackoverflow.com/a/4607435/821423">http://stackoverflow.com/a/4607435/821423</a></p>
