2012-05-29 21 views
8

Estoy reproduciendo un video en un WebView.Video en WebView - ApplicationContext vs Activity Context

Si una pérdida de memoria se debe evitar, la ApplicationContext (frente a un contexto Activity) tiene que ser utilizado para instanciar el WebView (refer to this)

Si paso en el ApplicationContext y la VideoView dentro de las WebView necesidades para crear un cuadro de diálogo (normalmente para 'No se puede reproducir este video'), obtengo un BadTokenException (refer to this)

¿Se espera que decidamos entre una pérdida de memoria o un posible ANR?

Respuesta

0

Concluyo de los comentarios anteriores y otras pruebas, que el problema es un error en el SDK: al crear un diseño WebView vía XML, la actividad se pasa como el contexto de WebView, no el contexto de la aplicación. Al finalizar la actividad, WebView aún conserva referencias a la actividad, por lo tanto, la actividad no se elimina de la memoria. Archivé un informe de error para eso, vea el enlace en el comentario anterior.

webView = new WebView(getApplicationContext()); 
0

Esto es definitivamente un error, o el diseño de la API es muy mala, no da ningún indicio de que el error. Creo que muchos desarrolladores resolvieron este problema.