DialogFragment pérdida de memoria

En la aplicación en la que estoy trabajando, estoy viendo una pérdida de memoria en un DialogFragment y la única manera de solucionarlo hasta ahora ha sido eliminar todas las vistas cuando el DialogFragment se destruye, ¿es normal hacerlo? Estoy trabajando con una ROM personalizada, así que no estaba seguro si tal vez eso tiene algo que ver con este problema. ¿Hay alguna razón de no eliminar todas las vistas desde el diálogo podría hacer que se fugas de memoria?

@Override public void onDestroyView() { if (getView() instanceof ViewGroup) { ((ViewGroup)getView()).removeAllViews(); } super.onDestroyView(); } 

Esto sucede a mi aplicación también y encontré la fuga usando Leakcanary.

Sucede cuando tienes un diálogo con EditText. El parpadeo del cursor, que se implementa mediante una devolución de llamada, no se maneja correctamente cuando se cierra la vista que contiene el EditText. Y sucede por casualidad según esto.

https://code.google.com/p/android/issues/detail?id=188551

Editar

Y así es como lo hago antes de cada dialog.dismiss() :

 editText.setCursorVisible(false); dismiss(); 

¡Espero que esto ayude!

MemoryLeak puede ocurrir para muchas causas, algunas causas comunes:

  • Mantenga la referencia de su objeto (en este caso la instancia de su DialogFragment) en algunos campos estáticos .
  • Pasar Context a Thread o AsyncTask porque Threads también es raíz de GC !
  • Su clase tiene clase interna no estática, en este caso ocurre una pérdida de memoria si la clase interna está relacionada con la raíz de la GC (por ejemplo, si la clase interna es instancia de AsyncTask ).

En tu caso tal vez tengas una vista relacionada con la raíz de la GC, mientras que esa vista no puede ser recolectada de basura tu diálogo que mantiene las vistas también no se puede recolectar basura.

  • ¿Hay de todos modos una aplicación puede utilizar más de 16mb en la memoria?
  • Excepción de objetos muertos de Android
  • Fragmentos de memoria de Android Fragment
  • ¿Cuál es el resto del gráfico principal de Eclipse Memory Analyzer?
  • Cómo salir de error de memoria al iniciar una actividad en la aplicación android?
  • Android: consumo de memoria constante / dumpGfxInfo ()
  • Android GLSurfaceView provoca fugas?
  • Android WebView - Fuga de memoria de JavaScript
  • Máxima memoria nativa que se puede asignar a una aplicación para Android
  • Android Universal Image Loader - ¿Cómo configuro las especificaciones correctamente?
  • Android: Campos estáticos y fugas de memoria
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.