2012-07-24 51 views
11

是的,我知道stopLoading()的文件说,“停止当前的负载。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()第一个loadUrl()被调用尽管WebView.stopLoading()被称为大约1秒较早

这是为什么?

stopLoading()确实是做什么的?

+0

我猜它只是设置一个标志,告诉WebView不要运行像onPageFinished等任何钩子,我不认为它会实际上停止网络连接。 – you786 2012-08-02 19:34:40

回答

3

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/