android WebView saveState / restoreState是否在4.0+中被破坏

时间:2012-06-13 16:33:07

标签: android android-webview

我已经实现了webview saveState()restoreState()逻辑来恢复webview的当前页面和历史记录,如下所示:

public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    ...

    if(savedInstanceState != null)
    {
        webView.restoreState(savedInstanceState);
    }
    else
    {
        webView.loadUrl(url);
    }
}

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);

    if(webView != null) webView.saveState(outState);
}

我在应用程序处于后台时通过DDMS终止应用程序进程来测试状态保存。

重新启动应用程序时,它在2.x设备上按预期工作,但在4.x设备上没有。相反,我要么得到一个空白的webview,要么奇怪地,显示历史记录中的第一页。

有没有人遇到过webview的4.x特定问题?

1 个答案:

答案 0 :(得分:0)

解决了这个问题。

Save/restore不是问题,原来问题在于我正在加载的特定网址。它们包含一个哈希符号,该符号在3.0+中运行此bug:Issue Details