Ejecución de WebView en segundo plano
Estoy desarrollando una aplicación que utiliza un WebView para iniciar sesión en un sitio web, extraer contenido de él y notificar al usuario cuando se actualiza el contenido. He conseguido el WebView para conseguir el contenido sin embargo necesito saber cómo puedo funcionar el WebView como servicio para conseguirlo funcionar en el fondo.
Como entiendo, WebViews debe ser manipulado desde el hilo de la interfaz de usuario, lo que hace las cosas mucho más difícil.
- Android: Cómo hacer referencia a imágenes de activos desde una página HTML remotamente cargada en webview
- WebView onPageFinished se está llamando cuando el error Página no disponible. ¿Solución?
- Webview está forzando mi scrollview a la parte inferior
- Cargar imagen desde un directorio privado local en una vista web
- Android WebView dentro de los problemas de eventos de ListView onclick
¿Alguna sugerencia o solución sobre cómo puedo conseguir que la aplicación notifique al usuario, independientemente de si la aplicación está abierta o no?
- Error de puerto USB de depuración de puertos USB
- El WebView que se ejecuta en el emulador en Android Studio no puede acceder a Internet, pero Chrome puede?
- Android ICS con problemas de compatibilidad con JQuery Mobile1.0
- ¿Cómo enviar datos de un Fragmento a otro Fragmento?
- La cámara no se abre en WebView
- Compartir cookies desde la vista web con BasicHttpRequest en Android
- Cómo saber cuando se ha terminado la renderización de WebView
- Vista web de Android a veces no carga imágenes
Si bien WebViews necesita ser manipulado en un solo hilo, no necesariamente tiene que ser el subproceso de interfaz de usuario (a menos que desee adjuntar el WebView a la jerarquía de vista), sin embargo, debe ser el mismo subproceso para todas las WebViews.
Si bien no es algo explícitamente soportado (o probado en gran medida), no hay nada especial que el WebView haga para evitar que lo ejecutes en un Servicio. El WebView llama a un par de métodos en el contexto que normalmente no funcionan en un servicio (como getTheme ()), por lo que tendría que trabajar con eso con un ContextWrapper. También necesitará llamar a WebView.layout
manualmente para engañar a WebView y pensar que tiene un tamaño. Podría haber más cosas que tendrías que hacer, pero nada más me viene a la mente.
¿Lo dices en serio?
runOnUiThread(new Runnable(){ public void run() { ... something } });
No se puede inflar o modificar ninguna vista desde el subproceso de fondo. Pero si desea que el contenido de una página web, se puede buscar en un hilo de fondo utilizando HTTP GET. Usted necesita utilizar GET en la url para obtener sus datos HTML.
- Android: agrega fuentes personalizadas al sistema
- Leer pdf almacenado en la memoria interna (La ruta de archivo no es válida)