Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does stopLoading() really do?

Yes, I know the documentation for stopLoading() says "Stops the current load."

But when I try to use it to stop loading currently progressing page before loading a new one, it doesn't seem to behave 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

As you can see in the log, WebViewClient.onPageFinished() for the first loadUrl() gets called despite the fact that WebView.stopLoading() was called about 1 second earlier.

Why is that?

What does stopLoading() really do?

like image 707
scatmoi Avatar asked Jul 24 '12 17:07

scatmoi


People also ask

How do I stop a Webview from loading a URL?

You have to override the method shouldOverrideUrlLoading (see here) of your WebViewClient , rather than the one you are overriding. Just return false if you want to load the page; true if you want to block loading.

How do I stop react native from loading?

p.s. Return true from the function to continue loading the request and false to stop loading. Show activity on this post. You can validate url to enter and when click back navigator, you enter to link only have validation.


1 Answers

you786 is right:

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

For that TODO they marked in the remaining messages would get processed in first. So that results in what I am just curious about: when stopping load in

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

The WebView does not really stops, instead it loads its own 404 Page (what it normally would do if you don't call 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/
like image 194
Marvin Emil Brach Avatar answered Sep 30 '22 02:09

Marvin Emil Brach