2012-07-24 27 views
11

Sí, sé que la documentación para stopLoading() dice "Detiene la carga actual."¿Qué hace stopLoading() realmente?

Pero cuando trato de usarlo para detener la carga progresa actualmente la página antes de cargar uno nuevo, no parece comportarse as desired:

07-24 12:53:30.177: V/WebView.loadUrl: http://www.google.com 
07-24 12:53:30.227: V/WebViewClient.onPageStarted: http://www.google.com 

===> WebView.stopLoading() called here <==== 

07-24 12:53:31.917: V/WebView.loadUrl: http://www.stackoverflow.com 
07-24 12:53:32.697: V/WebViewClient.onPageFinished: http://www.google.com 

07-24 12:53:32.767: V/WebViewClient.onPageStarted: http://www.stackoverflow.com 
07-24 12:53:33.587: V/WebViewClient.onPageFinished: http://www.stackoverflow.com 

Como se puede ver en el registro, WebViewClient.onPageFinished() por primera loadUrl() se llama a pesar de que fue llamado WebView.stopLoading() sobre 1 segundo antes.

¿Por qué es eso?

¿Qué hace realmente stopLoading()?

+0

supongo que simplemente establece un indicador para contar la vista Web no presentarse a cualquiera de los ganchos como onPageFinished, etc. no creo que en realidad se detendrá la conexión de red. – you786

Respuesta

3

you786 tiene razón:

public void stopLoading() { 
    checkThread(); 
    // TODO: should we clear all the messages in the queue before sending 
    // STOP_LOADING? 
    switchOutDrawHistory(); 
    mWebViewCore.sendMessage(EventHub.STOP_LOADING); 
} 

Para que TODO marcaron en los mensajes restantes se procesan primero. Por lo que los resultados en lo que soy apenas curioso sobre: ​​cuando se detiene la carga en

WebViewClient.onReceivedError(WebView view, int errorCode, String description, String failingUrl) 

El WebView en realidad no se detiene, sino que carga su propia página 404 (lo que normalmente haría si usted no llama StopLoading ()):

11-07 16:30:01.112: I/MainActivity(19189): Loading: http://92.53.45.42 
11-07 16:30:01.253: V/MainActivity.WebViewClient(19189): SHOULD_INTERCEPT_REQUEST: http://92.53.45.42/ 
11-07 16:30:01.347: V/MainActivity.WebViewClient(19189): PAGE_STARTED: http://92.53.45.42/ 
11-07 16:30:01.347: V/MainActivity.WebChromeClient(19189): ON_PROGRESS_CHANGED: 10 
11-07 16:30:01.347: V/MainActivity.WebViewClient(19189): LOAD_RESOURCE: http://92.53.45.42/ 
11-07 16:30:25.292: I/GATE(19189): <GATE-M>DEV_ACTION_ERROR</GATE-M> 
11-07 16:30:25.300: E/MainActivity.WebViewClient(19189): (CONNECT - Failed to connect to the server) -> http://92.53.45.42/ 
11-07 16:30:25.300: W/MainActivity.WebViewClient(19189): loading stopped..: 
11-07 16:30:25.300: V/MainActivity.WebViewClient(19189): PAGE_STARTED: http://92.53.45.42/ 
11-07 16:30:25.300: I/MainActivity.WebViewClient(19189): PAGE_FINISHED: http://92.53.45.42/ 
11-07 16:30:25.339: I/MainActivity.WebChromeClient(19189): ON_RECEIVED_TITLE: Webseite nicht verfügbar 
11-07 16:30:25.339: V/MainActivity.WebChromeClient(19189): GET_VISITED_HISTORY 
11-07 16:30:25.339: I/GATE(19189): <GATE-M>DEV_ACTION_COMPLETED</GATE-M> 
11-07 16:30:25.339: V/MainActivity.WebChromeClient(19189): ON_PROGRESS_CHANGED: 100 
11-07 16:30:25.339: I/MainActivity.WebViewClient(19189): PAGE_FINISHED: http://92.53.45.42/ 
Cuestiones relacionadas