Ukj*_*ent 18 android save webview
我有一个带有3个标签的tabhost.在每个选项卡中都有一个webiview.当我点击一个标签时,webview需要"重新加载",即使我曾经去过那里,它还没有被保存.有没有办法保存webview?
Sha*_*wal 40
这可以通过覆盖活动中的onSaveInstanceState(Bundle outState)并从webview调用saveState来处理:
@Override
protected void onSaveInstanceState(Bundle outState) {
webView.saveState(outState);
super.onSaveInstanceState(outState);
}
Run Code Online (Sandbox Code Playgroud)
然后在webview重新充气之后在你的onCreate中恢复它:
@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)
}
Run Code Online (Sandbox Code Playgroud)
e4c*_*4c5 12
restoreState永远不可靠.到2015年,文件接受了这一事实.(可能是对2014年左右的文件进行了更改).这就是它现在所说的.
如果在此WebView有机会构建状态(加载页面,创建后退/前进列表等)之后调用它,则可能存在不良副作用.请注意,此方法不再恢复此WebView的显示数据.
而saveState()的相应条目则说明如下:
请注意,此方法不再存储此WebView的显示数据.
你应该在onCreate方法中真正做的是调用webView.loadUrl()如果你想显示最后访问过的url,请看这个答案:
如果您担心webview重新加载方向更改等.
您可以将Activity设置为处理方向和keyboardHidden更改,然后单独保留WebView
归档时间: |
|
查看次数: |
22304 次 |
最近记录: |