¿Creación de un servicio de Android con Phonegap? (Haga que la aplicación de phonegap se ejecute incluso cuando está cerrada)

He estado trabajando en una aplicación de Android utilizando Phonegap y ahora me gustaría hacerlo así cuando la aplicación se cierra todavía puede ejecutar el código java / js en la aplicación. Así que entiendo que necesito crear un servicio. Si creo un plugin de servicio en phonegap todavía puedo ejecutar el código javascript o sólo el java?

¿Alguien ha hecho algo como esto? He encontrado esta discusión, pero no parece funcionar: http://groups.google.com/group/phonegap/browse_thread/thread/722b0e796baa7fc6 Así que eso es todo lo que tengo ahora mismo.

Antes de dar vuelta a desarrollarla nativa si no puedo imaginar hacia fuera pensé que preguntaría si cualquier persona ha hecho esto antes. Parece que no puedo encontrar ninguno de los complementos phonegap que hacen algo similar.

EDIT: Tengo una aplicación que ejecuta código Java como un servicio. Sin embargo, cuando llama a sendjavascript, no funciona. Así que hay una manera de tener el código javascript en ejecución en el fondo, así cuando una aplicación se cierra con phonegap?

Gracias

No, no es posible ejecutar código Javascript en segundo plano (al menos en mi opinión) como un servicio. Phonegap en Android utiliza una actividad especial llamada Droidgap , que alberga un WebView. Este control de navegador ejecuta el JavaScript. Esto significa que la ejecución de JS sólo se puede manejar dentro de esta actividad, independientemente de si es visible o no.

El código que enlazas de Google Groups intenta vincular un servicio desarrollado en Java a la actividad de DroidGap, por lo que el servicio NO está escrito en JS.

Puede tener alguna actividad de fondo dentro de su código JS dentro de su actividad secundaria derivada de la actividad de DroidGap. Por ejemplo, tienen un hilo de fondo en su actividad, tienen una función de devolución de llamada JS y permiten que el subproceso llame a esta funcionalidad de devolución de llamada.

Si realmente necesita un servicio que tiene que ir nativo.

Actualizar:
El código JS sólo se puede ejecutar con la actividad Droidgap. Una actividad puede tener 3 estados (basados ​​en el ciclo de vida de las actividades ):

  1. visible
  2. Invisible pero aún cargado
  3. sin cargar

He proporcionado una muestra en la que implementé un complemento Phonegap. El complemento permite que la actividad se registre a SMS_RECEIVED. Cuando las actividades salen del alcance (evento onbeforeunload), se anula el registro, por lo que sólo el número 1 se maneja.

Cuando desea que los 3 problemas manejados, tiene que reenviar la intención SMS entrante a la actividad. Cuando no se carga, el sistema cargará y activará automáticamente la actividad. Pero esto ya no es un servicio de fondo, su aplicación se volvería visible cada vez que se reciba un SMS.

Si no quieres esto (si realmente quieres un servicio de fondo), tienes que proporcionar una implementación nativa.

Hay este artículo en cómo crear un servicio en Android con Phonegap que da una cierta buena información sobre su problema.

Está utilizando un gran complemento con el fin de crear un servicio de fondo con phonegap fácilmente. Pero no puedes usar JS

No encontré una forma de hacer JS para ejecutar en el fondo. PERO usted puede pasar los parámetros de Java a JS y viceversa con el plugin … que es bastante útil. Sin embargo, todavía necesitará reescribir su código JS en Java. ¿A menos que usted tenga una razón específica para querer solamente JS ser funcionado? (Pero no debería haber …)

Espero que pueda ser útil para algunas personas que visitan esta página.

SÍ, y es muy simple … simplemente instale el complemento backgroundJS:

https://build.phonegap.com/plugins/430

Le permite ejecutar javascript en segundo plano y combinado con el complemento de notificación local, incluso puede enviar notificaciones al usuario en cualquier momento, sólo tenga en cuenta que haciendo esto hará que la batería se acabe más rápido, también considere que esto podría Crear un problema con la directiva de iOS. ¡¡¡buena suerte!!!

Puedes intentar agregar el complemento cordova-plugin-background-mode

Pero como dice el autor:
Las tareas de fondo infinito no son compatibles oficialmente con la mayoría de los sistemas operativos móviles y, por lo tanto, no son compatibles con los vendedores de tiendas públicas. No se garantiza una submssion exitosa. ¡Usa el plugin por tu propio riesgo!

  • Bitmap reciclado con largeHeap habilitado
  • Android: ¿Por qué no debo usar actividades dentro de pestañas?
  • ¿Cómo podemos saber que la transición de elementos compartidos de la actividad va a ejecutarse?
  • ¿Cómo envío el cuerpo del contenido de la web a través de correo electrónico?
  • ¿Por qué no se intercambian los elementos de la lista?
  • pirueta androide pirueta animación
  • Android - ¿Cómo puedo localizar el indicador de pestañas entre las dos pestañas TextViews?
  • Android - EditarTexto altura redimensionar basado en el teclado
  • La aplicación se bloquea al actualizar la base de datos sqlite por primera vez
  • Android lollipop - setentertransition () para el fragmento no funciona correctamente al salir
  • Android - ActionBarSherlock - Establecer textcolor de texto en el menú
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.