Video en WebView – ApplicationContext vs Contexto de la actividad
Estoy reproduciendo un video en un WebView
.
Si se debe evitar una pérdida de memoria, se debe utilizar ApplicationContext
(como contra un contexto de Activity
) para instanciar el WebView
( consulte esto )
Si paso el ApplicationContext
y el VideoView
dentro del WebView
necesita crear un diálogo (típicamente para 'no puede jugar este vídeo'), consigo una BadTokenException
( refiera esto )
¿Se espera que decidamos entre una fuga de memoria o una ANR potencial?
Concluyo de los comentarios anteriores y las pruebas adicionales, que el problema es un error en el SDK: al crear un WebView a través de la disposición XML, la actividad se pasa como el contexto de la WebView, no el contexto de la aplicación. Al finalizar la actividad, el WebView todavía mantiene referencias a la actividad, por lo tanto la actividad no se quita de la memoria. Archivé un informe de error para eso, vea el enlace en el comentario anterior.
webView = new WebView(getApplicationContext());
Esto es definitivamente un error, o el diseño de api es realmente malo, no da ninguna pista del error. Creo que muchos desarrolladores resolvieron este problema.