Guardar el estado de WebView y restaurar en ANDROID
Tengo una aplicación de Android que se construye con ViewPager
y WebView separado en cada página. Cada WebView
apunta diferentes sitios web. Por ejemplo, Page1: facebook, Page2: Twitter, Page3: Google+. El usuario puede agregar / quitar páginas.
Mi mPager.setOffscreenPageLimit(1)
(donde mPager
es una instancia de ViewPager
). Lo que significa que, cuando el usuario visualiza 3. la página, el primer fragmento se está eliminando (y se vuelve a crear cuando el usuario ve 2. página de nuevo).
- Conexión a un servicio web desde android - AsyncTask o Service?
- Servicio Web SocketTimeOutException provoca inconsistencia de base de datos
- Servicio llamado de Android a C # no funciona
- Obtenga las cookies de la vista web con ruta y fecha de caducidad
- Fondo-adjunto: fijo no funciona en android / móvil
Lo que quiero es guardar el primer estado de WebView antes de destruir y guardar su estado en algún lugar, y luego restaurarlo cuando el usuario lo ve. Porque recarga la página y obviamente es molesto. Y no quiero que el usuario recargue páginas web en cada golpe. He intentado con
mWebView.saveState(outState); mWebView.restoreState(savedInstanceState);
Pero no parece trabajar. ¿Alguna idea para guardar y restaurar estados de las webs?
He intentado ahorrar WebView sí mismo en una cierta clase, ahorrando los estados etc.
- Excepción de puntero nulo que hace difícil pasar un arreglo usando ksoap
- ¿Puedo ejecutar JavaScript sin un WebView, o un WebView puede ejecutarse sin un contexto de actividad, como en un servicio?
- Giro a la izquierda / derecha de Android en la actividad de WebView (haciendo clic en vínculos y desplazamiento vertical)
- Detectar clic en el botón HTML a través de javascript en Android WebView
- Android - Javascript: cómo ejecutar jquery en webview
- Servidor de back-end para aplicaciones móviles
- archivo interno del HTML de la demostración del androide
- Deserialize / unmarshal lista genérica de XML a la lista en Android
En realidad, setOffscreenPageLimit()
establece el número de páginas que se deben guardar tanto a la izquierda como a la derecha de la página actual.
De FragmentPagerAdapter
docs :
El fragmento de cada página que visita el usuario se guardará en la memoria, aunque su jerarquía de vista se puede destruir cuando no esté visible. Esto puede resultar en el uso de una cantidad significativa de memoria ya que las instancias de fragmentos pueden mantenerse en una cantidad arbitraria de estado.
Creo que en su caso, ya que WebViews puede ser muy grande en la memoria, Android dispone de él hasta que sea necesario de nuevo.
- ¿Cómo puedo obtener una miniatura de vídeo de URL remota para Android 4.0 y superior?
- Invisible SurfaceView para previsualización de la cámara