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
- 1. Annullare MFMailComposeViewController causa una perdita di memoria?
- 2. Una perdita di memoria dell'applicazione causa una perdita di memoria del sistema operativo?
- 3. Python - perché time.sleep causa perdita di memoria?
- 4. La creazione continua di bitmap causa la perdita di memoria
- 5. Perdita di memoria in WPF applicazione a causa di DelegateCommand
- 6. nella classe String causa la perdita di memoria
- 7. "performSelector può causare una perdita" alternativa quando causa una perdita?
- 8. Quarzo: perdita di memoria?
- 9. Perdita di memoria per CComBSTR
- 10. L'aggiunta di una semplice ScrollView alla Galleria causa una perdita di memoria
- 11. Perdita di memoria Admob - evitando utilizzando attività vuota
- 12. Si tratta di una perdita di memoria?
- 13. Perdita di memoria CheckedListBox
- 14. Perdita di memoria TTaskBar
- 15. GetOracleDecimal Perdita di memoria
- 16. Perdita di memoria SharePoint
- 17. perdita di memoria javascript
- 18. Perdita di memoria GETIPFROMHOST
- 19. Perdita di memoria IronPython incorporata
- 20. Perdita memoria di identità
- 21. Perdita di memoria thread
- 22. WriteableBitmap Perdita di memoria?
- 23. Async.StartChild ha una perdita di memoria?
- 24. jQuery.data può causare una perdita di memoria?
- 25. Come posso risolvere una perdita di memoria?
- 26. Perdita di memoria Microsoft.Web.Administration
- 27. getaddrinfo Perdita di memoria
- 28. JNA Perdita di memoria
- 29. Perdita di memoria UIPageViewController
- 30. Memoria insufficiente Problema di perdita di memoria
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 –