2012-04-14 32 views
7

Tengo una aplicación de Android que se construyó con ViewPager y WebView separados en cada página. Cada WebView señala diferentes sitios web. Por ejemplo, Página1: Facebook, Página2: Twitter, Página3: Google+. El usuario puede agregar/eliminar páginas.Guardar el estado de WebView y restaurar en ANDROID

Mi mPager.setOffscreenPageLimit(1) (donde mPager es una instancia de ViewPager). Lo que significa que, cuando el usuario ve la página 3., el primer fragmento se desecha (y se vuelve a crear cuando el usuario ve la página 2.)

Lo que quiero es guardar primero el estado de WebView antes de destruir y guardar su estado en algún lugar, y luego restaurarlo cuando el usuario lo vea. Porque vuelve a cargar la página y obviamente es molesto. Y no quiero que el usuario vuelva a cargar páginas web en cada golpe. Lo he intentado con

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

pero no parece funcionar. ¿Alguna idea para guardar y restaurar estados de webviews?

He intentado salvar WebView sí de alguna clase, estados de ahorro, etc.

+0

tiene alguna solución para este problema. –

+0

No, acabo de establecer mPager.setOffscreenPageLimit (3), donde 3 es el total de páginas de mi mPager. Pero no es una solución. – EvanBlack

+0

K gracias ....... –

Respuesta

0

En realidad, setOffscreenPageLimit() establece el número de páginas para mantener a la izquierda oa la derecha de la página actual.

De FragmentPagerAdapterdocs:

El fragmento de cada página de las visitas de los usuarios se mantienen en la memoria, aunque su jerarquía de la vista puede ser destruida cuando no es visible. Esto puede resultar en el uso de una gran cantidad de memoria ya que las instancias de fragmento pueden mantener una cantidad de estado arbitraria.

Creo que en su caso ya que WebViews puede ser bastante grande en la memoria, Android se deshace de ella hasta que la necesite nuevamente.

Cuestiones relacionadas