Sto utilizzando AdView e LeakCanary. Frammento che ospita la chiamata adView adView.destroy() in onDestroy, ma LeakCanary mostra che l'attività che ospita questo frammento è trapelata da com.google.android.gms.common.api.a.a.a.i . Il dump di heap mostra anche che ci sono perdite di memoria. Quando rimuovo AdView.loadAd() e non carico annuncio in frammento - non ci sono perdite. Qualche idea o suggerimento? Grazie.AdView causa una perdita di memoria
risposta
Potete provare la seguente:
- spostare la logica in onDestroyView()
prima rimuovere il
adView
dal suo contenitore e quindi chiamare destroy(), vale a direViewParent parent = adView.getParent(); if (parent != null && parent instanceof ViewGroup) { ((ViewGroup) parent).removeView(adView); } adView.destroy(); adView = null;
Lo stesso problema, AdView ha una variabile interna (riferimento forte) che tiene sul contesto, che è la mia Activit y, causando una perdita dell'istanza Activity.
La mia dipendenza è com.google.android.gms:play-services-ads:8.3.0
Un soluzione è quello di fornire il contesto dell'applicazione quando si crea l'istanza AdView.
AdView adview = new AdView(getApplicationContext());
Ma se stiamo usando adView in XML, questo non può essere fatto.Ho provato a distruggere il adView onDestroy ma non ha aiutato. –
@Funkyidol ya layout inflater è probabile che fornisce l'attività come il contesto di AdView in layout xml Aggiungendo una vista al gruppo di vista non è così terribile – dvd
Questa è l'unica cosa che ha risolto il problema per me. Peccato non poterlo aggiungere nel layout XML adesso ... – eliasbagley
Sfortunatamente c'è ancora una perdita di memoria. Sembra che adView detenga un riferimento all'attività. –
Non ho mai riscontrato perdite di memoria con AdView e stiamo utilizzando DFP dappertutto. Puoi assicurarti di utilizzare gli ultimi servizi di riproduzione. Sono positivo che sia qualcos'altro, ma non posso dire senza vedere alcun codice sorgente. –
Hai provato le app con LeakCanary o heap dump? Sto usando gli ultimi servizi di riproduzione 8.1.0 –