まさにここで私はメモリリークに夢中になっていて、何が実際にメモリリークにつながる可能性があるのかを率直に理解していません(そしてはい、http://kohlerm.blogspot.co.uk/2009/02/memoryなどの通常のリンクを読みました-leaks-are-easy-to-find.html)。
たとえば、PhoneStateListenerサブクラスをアクティビティ内に残し、それを何億回も開いたり閉じたりすることで、意図的にいくつかを作成しようとしましたが、DDMSヒープまたはMATに異常なものは何も表示されません。それでもSOで、onDestroyだけでなく、onPause(PhoneStateListener()は終了していません)の登録を解除する必要があることを何度も読みました。
質問:そのようなリストはありますか?ボーナスの質問:PhoneStateListenerは、onPause / onDestroyなどの登録を解除しない限り、リークを作成するのは本当ですか。
更新: 私は修正されたままです。アプリを何度も再生成すると、シングルインスタンスモードでも、onDestroyが呼び出された後も、登録されているPhoneStateListenerは引き続き有効であり、合計を開始します。私は現在、それらを殺すためのエレガントな方法に取り組んでおり、ここに私の結果を投稿します。
UPDATE2:リスナーの登録を解除する正しい方法は次のとおりです。instanceOfTelephonyManager.listen(phoneStateListener、PhoneStateListener.LISTEN_NONE); ...APIによると
UPDATE3:約束どおり、これをより適切なフレーズの質問にリンクします:https ://stackoverflow.com/a/4607435/821423