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


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; 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.