我已经实现了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特定问题?
答案 0 :(得分:0)
解决了这个问题。
Save/restore
不是问题,原来问题在于我正在加载的特定网址。它们包含一个哈希符号,该符号在3.0+中运行此bug:Issue Details