2012-05-29 12 views
8

Sto riproducendo un video in un WebView.Video in WebView - Contesto ApplicationContext vs Activity

Se una perdita di memoria è da evitare, la ApplicationContext (contro un Activity contesto) deve essere utilizzata per creare un'istanza WebView (refer to this)

Se passo nel ApplicationContext e VideoView all'interno delle WebView esigenze per creare una finestra di dialogo (in genere per "Impossibile riprodurre questo video"), ottengo uno BadTokenException (refer to this)

Ci si aspetta che decidiamo tra una perdita di memoria o un potenziale ANR?

risposta

0

Concludo dai commenti precedenti e ulteriori test, che il problema è un bug nell'SDK: quando si crea una WebView tramite il layout XML, l'attività viene passata come contesto per la WebView, non per il contesto dell'applicazione. Al termine dell'attività, WebView conserva ancora i riferimenti all'attività, pertanto l'attività non viene rimossa dalla memoria. Ho presentato una segnalazione per questo, vedi il link nel commento sopra.

webView = new WebView(getApplicationContext()); 
0

Questo è sicuramente un bug, o il design api è davvero pessimo, non dà alcun accenno all'errore. Credo che molti sviluppatori abbiano incontrato questo problema.

Problemi correlati