戻るキーを押すと、アクティビティが「破棄」されるか、開発者が関数finish()を呼び出したとき、またはシステムがメモリを必要とするときなど...
また、OutOfMemory 例外を回避するために、unBindDrawables (例を参照) のように onDestroy でクリーンアップ手順を実行する必要があることもおなじみです。
私の質問は:
アクティビティの破棄は、アクティビティ オブジェクトへの参照が削除されたことを意味しますか? つまり、アクティビティ オブジェクトが GC で使用できるようになりますか? もしそうなら、アクティビティの関連付けられたビューへの参照を明示的に削除する必要があるのはなぜですか?
例を考えてみましょう:
オブジェクトAにオブジェクトBへの参照があり、BがAによってのみ参照されている場合、 Aの参照を無効にすると、Bの参照を明示的に null に設定する必要はありません。両方とも GC 処理されます...
私の直感では、Activity の場合はこのようになっていると思います。どこが間違っているのか教えてください。
ありがとう!