我有一个
Android应用程序,它使用ViewPager构建,并在每个页面中分离WebView.每个WebView都指向不同的网站.例如,Page1:facebook,Page2:Twitter,Page3:Google.用户可以添加/删除页面.
我的mPager.setOffscreenPageLimit(1)(其中mPager是ViewPager的一个实例).这意味着,当用户查看3.页面时,正在处理第一个片段(并在用户查看时再次创建页面2).
我想要的是在销毁之前保存第一个WebView的状态并在某处保存其状态,然后在用户看到它时将其恢复.因为它重新加载页面,显然它很烦人.而且我不希望用户在每次刷卡时重新加载网页.我试过了
mWebView.saveState(outState); mWebView.restoreState(savedInstanceState);
但它似乎不起作用.有关保存和恢复网页浏览状态的任何想法吗?
我试过在某些类中保存WebView本身,保存状态等.
解决方法
实际上,setOffscreenPageLimit()设置要保留在当前页面左侧或右侧的页面数.
来自FragmentPagerAdapter docs:
The fragment of each page the user visits will be kept in memory,
though its view hierarchy may be destroyed when not visible. This
can result in using a significant amount of memory since fragment
instances can hold on to an arbitrary amount of state.
我认为在你的情况下,因为WebViews在内存中可能非常大,所以Android会在需要之前将其处理掉.