正如我在主题中所说,我希望我的 WebView 在另一个活动进入前台或仅在方向改变时防止重新加载网页。之所以如此,是因为 WebView 内容几乎完全是由 Javascript/AJAX 生成的。在几个论坛上搜索后,我发现很多人建议使用“saveState”和“restoreState”方法,但是当我查看文档时,它说:
请注意,此方法不再恢复此 WebView 的显示数据。参见 savePicture(Bundle, File) 和 restorePicture(Bundle, File) 保存和恢复显示数据。
所以,我在这里使用了 savePicture 和 restorePicture ,如下所示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...其他一些行....
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
if (savedInstanceState == null){
loadInicialWebUi();
}else{
mWebView.restoreState(savedInstanceState);
boolean restoredPic = mWebView.restorePicture(savedInstanceState, new File("savedDisplayWebView.temp"));
Log.d(TAG, "restored Picture:" + restoredPic);
}
}
@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
mWebView.saveState(savedInstanceState);
boolean savedPic = mWebView.savePicture(savedInstanceState, "savedDisplayWebView.temp");
Log.d(TAG, "saved Picture:" + savedPic);
super.onSaveInstanceState(savedInstanceState);
}
好吧,这些日志显示它保存了图片,但无法恢复它。我怀疑文件引用可能存在一些问题,但我想不出更好的方法来获取保存状态时创建的文件的引用。
有没有人心动?我将不胜感激任何线索/建议。提前致谢。
曼努埃尔。