保存WebView状态并在ANDROID中恢复

问题描述:

我有一个Android应用程序,它使用ViewPager和每个页面中的分开的WebView构建。每个WebView指向不同的网站。例如,Page1:脸书,第2页:Twitter,第3页:Google+。用户可以添加/删除页面。保存WebView状态并在ANDROID中恢复

我的mPager.setOffscreenPageLimit(1)(其中mPagerViewPager的实例)。这意味着,当用户查看3.页面时,第一个片段将被丢弃(并且在用户再次查看第2页时重新创建)。

我想要的是在破坏之前保存第一个WebView的状态并在某处保存其状态,然后在用户看到它时恢复它。因为它重新加载页面,显然它很烦人。而且我不希望用户在每次刷卡时重新加载网页。我已经尝试过

mWebView.saveState(outState); 
mWebView.restoreState(savedInstanceState); 

但它似乎不工作。任何想法保存和恢复webviews的状态?

我试图节省的WebView本身在某些类,节能状态等

+0

你有没有解决这个问题的方法。 – 2013-04-29 05:23:13

+0

不,我刚刚设置了mPager.setOffscreenPageLimit(3),其中3是我的mPager的总页数。但这不是一个解决方案。 – EvanBlack 2013-04-29 12:25:05

+0

K谢谢....... – 2013-04-29 13:08:02

其实,setOffscreenPageLimit()设置的页面数量,以保持到左边或当前页面的右侧。

FragmentPagerAdapterdocs

每个页面的用户访问将被保存在内存中, 的虽然它的视图层次,可以在不破坏可见的片段。这个 可能会导致使用大量的内存,因为片段实例可以保持任意数量的状态。

我想你的情况,因为WebViews可以在内存中相当大,Android处置它,直到它再次需要。