android中的webview在加载网址时会加载多次。
下面是代码。

 public boolean shouldOverrideUrlLoading(WebView view, String url)
            {

                if (url.contains(".pdf")) {
                    String[] spliturl = url.split("http://someurl/");
                    String googleurl = "http://docs.google.com/viewer?embedded=true&url=";
                    System.out.println("Google Url"+googleurl);
                    System.out.println("spliturl"+spliturl[1]);
                     view.loadUrl(googleurl+spliturl[1]);
                }
                else
                     view.loadUrl(url);

                return true;
            }
        });


我正在分割网址,因为它包含多个要传递给Google文档查看器以呈现pdf文档的网址。
第一次将URL正确地进行拆分,并将该URL串联以在google docs中打开,但是webview会在spliturl [1]处给出ArrayIndexOutOfBoundsException再次在此处执行。
谁能让我知道为什么再次执行此操作。
谢谢。

最佳答案

您应该始终检查数组的大小是否大于请求的索引:

if (url.contains(".pdf") && url.split("http://someurl/").size()>2){
// your code
}


不知道为什么调用它-可能是多个重定向。

08-18 14:20