首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓webView saveState

安卓webView saveState
EN

Stack Overflow用户
提问于 2012-04-21 20:12:05
回答 3查看 26.4K关注 0票数 22

我有一个有3个标签的tabs主机。在每个选项卡中都有一个tabs视图。当我点击一个标签时,网页视图需要“重新加载”,即使我以前在那里,它还没有被保存。有什么方法可以保存webview吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-21 20:13:43

这可以通过在您的活动中覆盖onSaveInstanceState(捆绑包outState)并从webview调用saveState来处理:

代码语言:javascript
复制
@Override
protected void onSaveInstanceState(Bundle outState) {
    webView.saveState(outState);
    super.onSaveInstanceState(outState); 
}

当然,在webview重新膨胀之后,在你的onCreate中恢复它:

代码语言:javascript
复制
@Override
public void onCreate(final Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.blah);
   WebView webview = (WebView)findViewById(R.id.webview);
   if (savedInstanceState != null)
      webview.restoreState(savedInstanceState);
   else
      webview.loadUrl(URLData)
}
票数 45
EN

Stack Overflow用户

发布于 2015-09-30 21:38:01

restoreState从来都不可靠。到了2015年,文件接受了这一事实。(更改可能是在2014年左右对文档进行的)。这就是它现在说的。

如果在此WebView有机会构建状态(加载页面、创建后退/前进列表等)后调用它,则为

。可能会有不受欢迎的副作用。请注意,此方法不再恢复此WebView的显示数据。

saveState()的相应条目如下所示:

请注意,此方法不再存储此WebView的显示数据。

在onCreate方法中,您真正应该做的是调用webView.loadUrl()。如果您想显示最后访问的url,请参阅以下answer

如果你关心的是网页视图的重新加载、方向改变等等。

您可以将Activity设置为处理方向和keyboardHidden更改,然后仅保留WebView

不变

票数 14
EN

Stack Overflow用户

发布于 2013-10-09 19:26:56

或者,您可以考虑在tabHost中使用片段。当输入另一个webView时,您可以将fragment设置为隐藏,将另一个设置为显示。当您返回到前一个片段时,内容将不会被销毁。这就是我怎么做的,它对我很管用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10258772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档