android webView onPageFinish调用多次??(未解决)

在WebView的应用中,可以使用WebViewClient监听WebView的内容【加载】事件,比如onPageFinished、onPageStarted等。但是即使onPageFinished触发时,WebView的内容也并未显示。
因为项目需求,可能需要通过webview加载页面的真实状态来设定标记. 然后决定一些操作. 但是,WebViewClient中的onPageFinish()方法 还有WebChromeClient类中的获取progress进度的方法都存在问题(或者对我自己来说是有问题的). 1. 在无网络状态下, onPageFinish依然可以被调用. 是因为只是界面加载结束, 而不是界面加载完成么? 2. WebChromeClient的获取进度方法,也同样在无网络下达到100的最大值. 所以, 希望找到有效的,可以监听页面是否真正加载完毕,可以展示的方法.
————————————————————————分割线————————————————————————————————————————
以下是我从网上找到的分析:
  
  
WebViewClient.onPageFinished()。你永远无法确定当WebView调用这个方法的时候,网页内容是否真的加载完毕了。当前正在加载的网页产生跳转的时候这个方法可能会被多次调用,StackOverflow上有比较具体的解释( How to listen for a Webview finishing loading a URL in Android?), 但其中列举的解决方法并不完美。所以当你的WebView需要加载各种各样的网页并且需要在页面加载完成时采取一些操作的话,可能WebChromeClient.onProgressChanged()比WebViewClient.onPageFinished()都要靠谱一些。

WebView 在Android4.4的手机上onPageFinished()回调会多调用一次(具体原因待追查)

需要尽量避免在onPageFinished()中做业务操作,否则会导致重复调用,还有可能会引起逻辑上的错误.

使用重写onDraw()方法是类似的。需要在WebView中定义一个监听接口,比如OnLoadFinishListener,在使用时重写其onLoadFinish()方法就可以了。

http://www.cnblogs.com/noodleutopia/p/4776620.html?utm_source=tuicool&utm_medium=referral

最后附上WebView的一些常见问题及解决方案博客:
http://blog.csdn.net/t12x3456/article/details/13769731/

                
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值