恢复历史记录和恢复webview的当前页面

qub*_*ubz 5 history android bundle webview android-activity

我有一个我正在浏览的webview.我已经实施了回去继续前进.我的问题是,当我在访问另一个活动后返回webview时,历史记录丢失,即webview从第一个URL开始.

我如何对其进行编码,以便在我调用webview上的完成后交换到返回webview的另一个活动时,WebBackForwardList将被恢复,并且当我离开webview时,我被带到了我所在的页面?

我已经尝试使用webview.save/restoreState(bundle)覆盖onSaveInstanceState和onRestoreInstanceState但没有成功.

我已通过保存首选项中的最后一个网址返回到最后一页,但无法恢复整个历史记录.

lar*_*am1 2

您正在重用网络视图吗?

Restore() 的 javadoc 说:

在使用该对象之前,应该调用此方法来恢复 WebView 的状态。如果在 WebView 有机会构建状态(加载页面、创建后退/前进列表等)之后调用它,可能会产生不良副作用。

因此重新生成 webview 对象可能会有所帮助。

其他研究途径:

  • WebView.restore() 调用 list.addHistoryItem(item) 而不清除列表,因此如果您有一个正在重用的 webView 那么在 Restore() 之前先调用 webView.clearHistory() 可能会有所帮助。

  • 这个SO 答案意味着您可以发送一条消息到历史列表以添加项目。

祝你好运,请发回你的进度。

——拉里