Trabajadores web en browseres mobilees

Estoy trabajando en una aplicación mobile que necesita sondear un service web en un intervalo regular (usando setInterval). Hice un prototipo basado en HTML5, pero cuando el browser mobile se ve en segundo plano, se suspende la ejecución de javascript.

Analicé la creación de aplicaciones nativas para iOS y Android. En iOS, esto puede hacerse pidiendo una cantidad limitada de time de procesamiento cuando la aplicación entra en modo de background. En Android creo que tendría que hacer un service que se inicia y se detiene desde la aplicación.

Sin embargo, veo que en Safari en iOS5, la ayuda de los trabajadores web ha vuelto, y que esto ya ha sido soportado en el browser Android por un time. Esto me hace pensar, ¿puedo usar trabajadores web para ejecutar JavaScript en los browseres mobilees cuando están en segundo plano?

La respuesta es no.

Desafortunadamente, las aplicaciones en segundo plano con tecnologías HTML5 no son para dispositivos mobilees. No solo los browseres mobilees suspenden agresivamente la página cuando está en segundo plano, sino que también pueden matar a todo el browser (pestaña) si lo sienten. Si tiene o no trabajadores web no afecta esto.

Ejecutar incluso aplicaciones nativas en segundo plano no es trivial en estos sistemas operativos.

Lo que te sugiero es que

  • Extrae la parte de background del trabajador de tu JS y escríbela en el idioma nativo (Java, iOS)

  • Use Phonegap, etc. envoltura similar para la interfaz de usuario de su aplicación