stopLoading()真正做了什么?

时间:2012-07-24 17:06:59

标签: android webview android-webview webviewclient

是的,我知道stopLoading()的文档说“停止当前加载。

但是当我尝试使用它在加载新页面之前停止加载当前正在进行的页面时,它似乎没有表现出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

正如您在日志中看到的那样,第一个WebViewClient.onPageFinished()的{​​{1}}被调用,尽管loadUrl()被称为提前1秒。< / p>

为什么?

stopLoading()真正做了什么?

1 个答案:

答案 0 :(得分:5)

you786是对的:

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

对于那个TODO,他们在其余消息中标记的内容将首先得到处理。因此,这导致我只是好奇:在

中停止加载时
WebViewClient.onReceivedError(WebView view, int errorCode, String description, String failingUrl)

WebView并没有真正停止,而是加载了自己的404页面(如果你不调用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/