2016-05-06 19 views
9

Pur avendo l'opzione "Non mantenere attività" ATTIVATA nelle impostazioni sviluppatore, sto caricando l'url in webview con vWebView.getSettings().setBuiltInZoomControls(true); Come risultato, ho seguito il problema.WebView ZoomButtonsController

WindowManager: android.view.WindowLeaked: Activity pl.izmajlowiczl.zoomcontrolls.MainActivity has leaked window android.widget.ZoomButtonsController$Container{21639342 V.E..... ......I. 0,0-432,73} that was originally added here (...) 

Dopo aver controllato il codice ZoomButtonsController scopro che il problema sta postando un messaggio in ritardo sulla gestore che nasconde i comandi di zoom dopo qualche tempo.

Qualche idea su come rimuovere il messaggio dal gestore di ZoomButtonsController quando la vista viene distrutta? (È solo privato)

O altre idee su come risolverlo?

ZoomButtonsController class ha mHandler, che gestisce in ritardo MSG_DISMISS_ZOOM_CONTROLS messaggio

+1

Si prega di inserire il codice per quello schermo –

risposta

0

Causa: Quando il rivestimento attività viene chiamato, ma i controlli dello zoom sono ancora visibili.

Soluzione 1: uso pinch zoom

// make sure your pinch zoom is enabled 
webView.getSettings().setBuiltInZoomControls(true); 

// don't show the zoom controls 
webView.getSettings().setDisplayZoomControls(false); 

Soution 2: Aggiungi questo alla vostra attività:

@Override 
    public void finish() { 
     ViewGroup view = (ViewGroup) getWindow().getDecorView(); 
     view.removeAllViews(); 
     super.finish(); 
    } 
+0

Soluzione 2 non funziona se l'attività è stata uccisa dal sistema. La soluzione 1 sembra essere l'unica soluzione per ora. – tynn