Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Los oyentes crean fugas de memoria si no se eliminan de una actividad destruida?

Si agrega un oyente a un control / vista y no lo elimina, ¿creará una pérdida de memoria? Por ejemplo, onCreate agrega un escucha a un EditText que escucha las modificaciones. ¿Necesita eliminar este oyente en el onDestroy?

Me imagino que si utiliza un oyente anónimo o una variable local que implementa el escucha, la memoria sería free'd cuando la Activity se destruye debido a las reglas de alcance.

La única manera que podría ver un potencial de fugas de memoria es si el oyente se pasó en un objeto de intención. ¿Pensamientos?

2 Solutions collect form web for “¿Los oyentes crean fugas de memoria si no se eliminan de una actividad destruida?”

Por sí mismos, el oyente no crea una pérdida de memoria. Sin embargo, a menudo se utilizan incorrectamente y por lo que puede dar lugar a fugas. A veces se ve el código en el que un objeto se refiere a un componente (por ejemplo, para mostrar mensajes allí), que tiene un oyente, que se refiere (posiblemente indirectamente) al primer objeto. Esto forma un ciclo y todos sus miembros viven y mueren juntos. Cuando el componente es un diálogo que está destinado a ser de corta vida, puede tener un problema. Los principiantes tienden a usar objetos como

 class MyKitchenSink implements Runnable, KeyListener, .... 

Que puede tener muchas referencias y facilita la creación de una pérdida de memoria * . No crear "clases universales" es el camino a seguir.


* No es una fuga de memoria "real" como en C , ya que todos los objetos permanecen accesibles y podrían utilizarse si se desea. Es sólo mantener el objeto accesible por un tiempo mucho más largo de lo esperado, que se come la memoria al igual que una fuga.

No se debe crear una pérdida de memoria a menos que algo distinto de las referencias de control / view el oyente – no es necesario quitar el oyente en el onDestroy …

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.