吐槽 Android的WebView的pauseTimers方法神坑 webview加载卡住

Stars-one 2021年03月11日 315次浏览 本篇字数为1,345字

本文为作者原创,转载请注明出处,谢谢配合
作者:Stars-one
链接:https://stars-one.site/2021/03/11/android-webview-load-bug


说明

之前公司的项目和别的公司一起合作,忽然出现情况,进入到他们的Activity之后返回,再到我们页面,加载的网页webview就卡住了

我先是觉得排查一下我们这边的Activity,对webview的页面开始加载和页面加载两个监听方法,添加了日志打印

发现出现卡住的情况是页面加载卡住了

于是继续排查进度条,发现每次出现情况进度刚好在70,就是有点奇怪了

调试了几天,并没有结果

之后得知,他们那边的Activity也是有个webview的,于是尝试得百度搜索了下android webview 影响加载

得到了份结果

感觉应该是这个pauseTimers方法

wevview的pauseTimer会暂停所有的webview的加载

调用pauseTimers()这个方法会将整个app所有webview的js中的定时器停掉。即使没有调用这个方法的webview也不能幸免。

于是让他们那边给了份代码,之后便是看到了上文中的提及的方法,他们那边有调用...

然后我扩展的搜索了下Android webview pauseTimers,百度一看,好多文章都说到了这个问题

很大概率确认应该是这个问题了,于是加了这边页面加了个恢复的方法,测试,成功

@Override 
protected void onResume(){  
    super.onResume();  
    webView.resumeTimers();  
}