保存WebView的状态并在ANDROID中恢复

我有一个 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会在需要之前将其处理掉.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...