7

我有一个 Android 应用程序,它在每个页面中构建ViewPager并分离了 WebView。每个WebView指向不同的网站。例如,第 1 页:facebook,第 2 页:Twitter,第 3 页:Google+。用户可以添加/删除页面。

我的mPager.setOffscreenPageLimit(1)(哪里mPager是 的实例ViewPager)。这意味着,当用户查看 3. 页面时,第一个片段正在被释放(并在用户再次查看 2. 页面时重新创建)。

我想要的是在销毁之前先保存 WebView 的状态并将其状态保存在某处,然后在用户看到它时恢复它。因为它会重新加载页面,显然它很烦人。而且我不希望用户在每次滑动时都重新加载网页。我试过了

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

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

我尝试将 WebView 本身保存在某个类中,保存状态等。

4

1 回答 1

0

实际上,setOffscreenPageLimit()设置要保留在当前页面左侧或右侧的页数。

来自FragmentPagerAdapter 文档

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

我认为在您的情况下,由于 WebViews 在内存中可能非常大,Android 会处理它,直到再次需要它为止。

于 2013-07-12T02:06:34.643 回答