Android WebView restoreState冻结

时间:2011-10-04 10:35:31

标签: android webview

我的问题与许多关于在方向改变后处理WebView的现有问题有关。

我知道活动被破坏了,所以我使用onSaveInstanceState()来保存它的状态,然后我用restoreState()恢复它。

这在大多数时候都很好用。但是,当我更快地更改方向时 - 在启动我的活动后立即或在从不同布局返回后创建WebView对象时,它不会。调试显示我的WebView状态被保存(并且当方向发生更改时已经创建和准备了所有对象)并且它尝试恢复状态,但不知何故它不能。没有任何错误,但页面永远不会加载,我看到无限的白色屏幕。调用WebView.reload()也无济于事。

知道为什么会这样吗?正如我所说,所有对象都是在方向更改时创建的,并且调用了loadUrl()方法,因此应该正确保存状态。

1 个答案:

答案 0 :(得分:1)

检查您的WebView Bundle。如果它是EMPTY,则不要恢复状态。

if (!bundleObject.isEmpty()) {
    mWebView.restoreState(bundleObject);

}