激活WebView.setBlockNetworkImage时,WebView会导致长时间延迟

时间:2016-08-21 07:14:45

标签: android webview android-webview

现在我正在开发各种WebView应用程序。 在某些情况下,我不需要在WebView上加载图像,然后动态调用WebView.setBlockNetworkImage(true)。

API可以正常工作,但在某些情况下,当我点击链接标记时,在开始加载到下一页之前会有很长的延迟。

让我告诉你如下的最低代码:

public class MainActivity extends AppCompatActivity {
private static final String TAG="MainActivity";
private WebView mWebView;
private WebSettings mWebSettings;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mWebView = (WebView)findViewById(R.id.webView);
    mWebSettings = mWebView.getSettings();
    mWebSettings.setJavaScriptEnabled(true);
    mWebSettings.setBlockNetworkImage(true);
    mWebView.setWebViewClient(new WebViewClient(){
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            return false;
        }
    });

    mWebView.loadUrl( "http://www.yahoo.co.jp");
}

当我运行上面的代码时,应用程序将加载Yahoo!日本页面。接下来,您单击拍卖页面链接(您将看到锤子图标),WebView将在开始加载前等待几秒钟。延迟是5秒左右。 如果我们为setBlockNetworkImage()提供false,则会立即开始加载。

Link button on Yahoo! Japan page.

我在API22上使用模拟器和API23确认了与真实设备相同的行为。 内容中的链接按钮只是一个标签'。但是现在我在其他任何网站上都没有看到相同的行为。

我不了解阻止图片资源是否与点击代码的延迟有关。 如果您有线索或解决方案,请告诉我。

0 个答案:

没有答案