一次非常诡异的WebView js失效问题

来源:互联网 发布:单片机最小系统图片 编辑:程序博客网 时间:2024/06/05 14:42

最近遇到一个很诡异的webview问题,两个Activity a和b,里面都使用了webview。

如果单独用a,并不会有问题。但是如果是a->b->a这样的顺序,会导致a里webview的js都失效了。

也就是webview之间发生了互相影响。

问题非常诡异,因为他们是不同的webview对象,排查一天,采用了二分法定位问题代码,最终发现导致bug的代码如下:

@Override    protected void onResume() {    super.onResume();    mWebView.resumeTimers();    }    @Override    protected void onPause() {    super.onPause();    mWebView.pauseTimers();    }

这两行代码看上去没啥毛病,网上也有很多类似用法,但是经测试,屏蔽掉后就解决了js失效的问题。

看了下api说明:

public void pauseTimers ()Added in API level 1Pauses all layout, parsing, and JavaScript timers for all WebViews. This is a global requests, not restricted to just this WebView. This can be useful if the application has been paused.


原来这个方法是全局生效的,会导致所有webview的js失效,太蛋疼了。

0 0
原创粉丝点击