AdView causa pérdida de memoria

Estoy usando AdView y LeakCanary. Fragmento que aloja la llamada adView adView.destroy () en onDestroy, pero LeakCanary muestra que la actividad que hospeda este fragmento es filtrada por com.google.android.gms.common.api.aaai. El volcado de montón también muestra que hay pérdida de memoria. Cuando elimino AdView.loadAd () y no cargar anuncio en fragmento – no hay pérdida. ¿Alguna idea o sugerencia? Gracias.

2 Solutions collect form web for “AdView causa pérdida de memoria”

El mismo problema, AdView tiene una variable interna (referencia fuerte) que se aferra al contexto, que es mi Actividad, provocando una fuga de la instancia de Actividad.

Mi dependencia es com.google.android.gms:play-services-ads:8.3.0

Una solución consiste en proporcionar el Contexto de la Aplicación al crear la instancia de AdView.

 AdView adview = new AdView(getApplicationContext()); 

¿Puede probar lo siguiente:

  • Mueva su lógica en onDestroyView ()
  • Primero elimine su adView de su contenedor y luego llame a destroy (), es decir

     ViewParent parent = adView.getParent(); if (parent != null && parent instanceof ViewGroup) { ((ViewGroup) parent).removeView(adView); } adView.destroy(); adView = null; 
  • ¿Cómo puedo solucionar esta pérdida de memoria de Android que involucra Threads?
  • ¿Se trata de una fuga de contexto de Android?
  • Máxima memoria nativa que se puede asignar a una aplicación para Android
  • Android - Firebase - ¿Necesito eliminar CADA oyente?
  • Fuga de actividad al usar oyentes de voleibol
  • Cómo depurar la pérdida de memoria donde las instancias de excepción en el volcado heap no tienen referencias entrantes?
  • ¿El aumento de tamaño de jittable se correlaciona con la pérdida de memoria en android?
  • Mi aplicación Android consume demasiada memoria
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.