JavaScript se detiene en la pestaña inactiva de Chrome de Android

Tengo una pequeña página web que transmite música que puedo escuchar en mi teléfono. El JavaScript de la página establece un tiempo de espera que carga la siguiente canción y la reproduce cuando termina la primera canción.

Mientras que la pestaña está activa, todo funciona bien. Pero después de que la pestaña se vuelva inactiva, los tiempos de espera continúan funcionando durante unos minutos y, luego, cuando se termina la canción que se está reproduciendo, la siguiente canción no se carga ni se reproduce.

Estoy suponiendo que esto se debe a Chrome para detener la ejecución de JavaScript para la pestaña inactiva, pero no quiero tener que mantener mi pantalla en todo el tiempo que estoy tocando música.

He depurado el código usando el depurador de Chrome para móviles estableciendo un tiempo de espera para ejecutar cada 500ms que sólo muestra la fecha actual. Una vez que la pantalla se vuelve negra, el tiempo de espera cae a una vez cada 1000ms, lo que se espera, pero después de unos minutos, el tiempo de espera se detiene por completo. Pero una vez que la ficha vuelve a estar activa, todos los tiempos de espera detenidos se activan y se ejecutan.

Chrome que cambia setInterval / setTimeout a 1000ms es esperado y explicado, pero detener la ejecución completamente hace que toda mi página deje de funcionar.

He intentado mantener la pestaña activada ejecutando solicitudes AJAX de vez en cuando, pero las pausas también. Nada de lo que he intentado mantiene el código JavaScript en ejecución.

Básicamente, hay una manera alrededor de esto? ¿Hay una manera de mantener la pestaña activa cuando la pantalla está apagada?

No. Por razones de rendimiento y duración de la batería, se detiene todo el procesamiento en pestañas que no están activas actualmente. Los dispositivos que ejecutan estas páginas son muy limitados en comparación con un dispositivo de escritorio y debemos respetar al usuario.

Tenemos la opción de mantener la música y el sonido en el fondo (cuando la pantalla está apagada), pero no puedes moverte a la siguiente pista que necesites.

  • ¿Cómo agregar la función en el botón en phonegap?
  • JavaScript no funciona en Android Webview?
  • Trabajadores web en navegadores móviles
  • Android JS en WebView.loadUrl ()
  • Configurar la cámara y la altura de la cámara
  • Obtener una URL de pestaña desde la acción de la página (WebExtensions, Android)
  • ¿Existe una alternativa JQuery a JQTouch con mejor soporte para Android?
  • Soporte de selector de archivos en el teléfono para ios y Android
  • JavaScript a veces no funciona en la vista web de android
  • Angular y ionicPush no funciona en android
  • Los navegadores de Android no gestionan correctamente los eventos de touchmove
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.