Vista web de Android dentro de un servicio?

Tengo un WebView en mi aplicación de Android de la que una gran cantidad de javascript es llamado por nuestro servidor. Quiero implementar un sistema en el que una señal del servidor va a despertar / reiniciar la aplicación y llevarla al frente para alertar al usuario. Sé que esto es horriblemente odioso pero en mi caso es necesario.

Parece que la única manera de lograr esto es tener el WebView en vivo en un servicio (porque las actividades pueden ser destruidas por el sistema operativo en cualquier momento). ¿Alguien sabe cómo funcionaría? He leído que WebView sólo puede residir en Actividades.

¡¡Gracias!!

WebViews sólo puede residir en las actividades porque son un componente de interfaz de usuario. La mejor manera para que usted resuelva este problema es descargar la comunicación que su javascript está haciendo en el servicio sí mismo. Esto es cómo funciona android. La única otra solución es hacer que su comunicación javascript / servidor sea suficientemente tolerante a fallos para que pueda soportar la pérdida de conexión en cualquier momento. Para obtener ideas sobre cómo hacer esto, me gustaría ver en el modelo REST. Si desea obtener una mejor idea sobre el uso de REST con Android, sugiero este video de Google IO . A día de hoy, es uno de mis favoritos.

En cuanto a enviar una señal desde el servidor para iniciar una actividad, esta es una posibilidad en cierta medida. Tendrás que tener algo que escuchar en el dispositivo, lo más probable es un servicio. Usted podría hacer que su servicio haga una encuesta larga y por lo tanto simplemente sentado allí esperando una respuesta. Cuando recibe la respuesta del servidor, podría hacer una

Context.startActivity(intent) 

Donde la intención es una intención explícita que especifica la actividad que desea iniciar. Dicho esto, un servicio se puede matar también si los recursos están llegando a escasear en el dispositivo. Además de eso, la conectividad a Internet podría perderse en cualquier momento (estos son teléfonos móviles y la gente a menudo toma lugares de teléfonos móviles donde no tienen conectividad a Internet).

La conclusión es que los dispositivos no están diseñados para ser 100% fiable en términos de conectividad. Lo más inteligente para usted es cambiar las especificaciones de su aplicación para que sean más tolerantes a las fallas.

Puede sonar contundente, pero no hay mucho más que yo pueda decir aparte de "No hagas esto. No hagas esto nunca." Más constructivamente, diría que si haces las cosas bien, deberías ser capaz de empujar tus cosas al fondo y nunca molestar al usuario con él. Recuerde, KISS, no es sólo una banda con un ejército. Es una filosofía hermosa. Mantenlo simple estúpido. Puede que desee echar un vistazo a este video , es uno de mis favoritos y podría ayudar a conseguir que en un estado diferente de la mente. ¿Es útil?

TomBomb, gracias por aceptar mi respuesta anterior, pero creo que podría tener algo más de uso para usted. En lugar de forzar a una actividad a entrar en primer plano, ¿por qué no utilizar una notificación de barra de estado para que sus usuarios sepan que algo nuevo del servidor ha entrado?

  • AdView ralentiza la aplicación completa, posible razón
  • Android WebView canGoBack siempre es cierto
  • Vista web de Android POST
  • ¿Cómo abrir el archivo pdf local en webview en android?
  • Android - después de cargar URL con webview puedo cambiar el color de fondo
  • Webview html formulario de entrada no mostrar / permitir el teclado
  • La casilla de comentarios de Facebook no se muestra en la vista web de Android
  • WebView en un cuadro de diálogo (carga de activos) y no presentado
  • Android - Cómo ejecutar la intención de JavaScript
  • Cómo hacer un Scroll Listener para WebView en Android
  • Cómo cambiar el tamaño de una vista web de Android después de agregar datos en ella
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.