ABC__D
ylxb
采纳率0%
2016-06-22 04:36 阅读 3.6k

android webView 设置一个页面的请求时长?

在一个面板上面有两三个按钮,每个按钮加载一个不同的远程页面,其中一个网页是通的,另外一个网页是不通的(就是显示不出来的)
    共用一个webview,当我在已经显示的界面上,通过面板上的点击按钮加载不通的页面的时候,页面显示还是通的那个页面,而不同的页面会在两三分钟后才给出错误提示,
    用户体验很不好。貌似点了以后没有响应,其实是一直在请求的····
    有没有方法,设置请求的时长,超过了设置的时间就不进行处理了?
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • sinat_26761191 sinat_26761191 2016-06-22 05:24

    你用什么请求的 asyncHttpClient.setTimeout(15000); 类似语法都差不多

    点赞 评论 复制链接分享
  • riskychengallesgut jian_cheng_90 2016-06-22 06:28

    Webview是有一个请求加载造成的回调监听的。设定一个定时器,当开始请求的时候就开始启动计时器,在计时器还未到期时就继续加载,当加载完成时,如果计时器还未到期,就终止计时器就行了

    点赞 评论 复制链接分享
  • ABC__D ylxb 2016-06-24 05:40

    mWebView.setWebViewClient(new WebViewClient() {

            @Override
            public void onPageStarted(final WebView view, String url, Bitmap favicon) {
                // TODO Auto-generated method stub
                super.onPageStarted(view, url, favicon);
    
                final Handler handler=new Handler();
    
                timer = new Timer();
                TimerTask tt = new TimerTask() {
                    @Override
                    public void run() {
                        /*
                         * 超时后,首先判断页面加载进度,超时并且进度小于100,就执行超时后的动作
                         */
                        if (MainActivity.this.mWebView.getProgress() < 100) {
                            Log.d("testTimeout", "timeout...........");
    
                        handler.post(runnable);
                            timer.cancel();
                            timer.purge();
                        }
                    }
                };
                timer.schedule(tt, timeout, 1);
    
            }
    
    
            Runnable runnable=new Runnable() {
    
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    mWebView.stopLoading();
    
    
                }
            };
    
            @Override
            public void onPageFinished(WebView view, String url) {
                // TODO Auto-generated method stub
                super.onPageFinished(view, url);
    
                Log.d("testTimeout", "onPageFinished+++++++++++++++++++++++++");
                Log.d("testTimeout", "+++++++++++++++++++++++++" + MainActivity.this.mWebView.getProgress());
                timer.cancel();
                timer.purge();
            }
    
        });
    
        mWebView.loadUrl("http://6.6.0.60/rkzgapi/app/sj.aspx#/sj1");
    
    }
    

    是按照网上的思路来的,结果程序出异常报错,有大神没有麻烦看看啊

    点赞 评论 复制链接分享

相关推荐