android - notes - startForeground() causando problemas con cordova
cordova-android update (2)
Cuando el JS no está escrito dentro de la devolución de llamada del evento onDeviceReady()
o se está WebView
Cordova WebView
, cuando el Device
ya está en estado "listo", en este caso solo se onDocumentReady()
evento onDocumentReady()
otro momento.
intente configurar un caso de prueba que registra cuándo se desencadena el evento; la diferencia entre Device
& Document
Ready podría ser la culpable. se sugiere el registro detallado de eventos JS y Logcat.
podría ser necesario vincular los eventos JS de forma diferente o mover el código entre ellos, para evitar la situación, que parece ser: volver a cargar un WebView
cuando el Device
está "listo", posiblemente algún tipo de intento de implementación, que funcione ¿contra el concepto de tener una aplicación JS ejecutándose dentro de una implementación WebView
? Sin haber visto el menor código (es obvio que este "ejemplo" no funcionará, mientras haya referencias rotas), supongo que el Service
ya se está ejecutando, mientras que la Aplicación no puede iniciarlo.
Este podría ser un example funcional de lo que intentas archivar.
Mientras que la versión actual de Cordova es más bien 7.0 que 5.1.
Estoy usando un servicio en mi aplicación cordova que genera una notificación startForeground
en onCreate. Si la aplicación se elimina mediante deslizamiento y se inicia de nuevo, el evento listo para el dispositivo cordova ya no se activará. Parece que el objeto cordova
sí mismo no está definido cuando se reinicia la aplicación. Aparece el siguiente mensaje de error:
E/Web Console(19472): Uncaught TypeError: Object #<Object> has no method ''exec'' at file:///android_asset/www/src/jsFile.js:31
Línea 31 y siguientes:
cordova.exec(function (r) {
if (callback) {
callback(r);
}
}, function (err) {
if (callback) {
callback(false);
}
}, "Plugin", "functionName", []);
El problema solo ocurre si utilizo startForeground
en mi servicio, si comento esta parte del código, todo funciona correctamente. Necesito desesperadamente ayuda con estas preguntas:
- ¿Es posible ejecutar cordova manualmente?
- Cómo iniciar el servicio con
startForeground
, pero aún desencadenar el dispositivo cordova listo después de matar y reiniciar la aplicación
Editar:
Después de hacer dos proyectos de ejemplo rápidos, uno en Cordova 3.6 (la versión que estoy usando para mi aplicación real) y otro con Cordova 5.1, me di cuenta de que el problema no ocurre en la nueva versión de Cordova. Sin embargo, realmente no quiero actualizar, porque:
- Nunca toque un sistema en funcionamiento
- Ya no sé lo que podría no funcionar en la versión Never, ya que he instalado muchos complementos en mi aplicación.
- Soy perezoso.
¿Alguna idea de qué podría haber cambiado de 3.6 a 5.1 que resolvió el error, y si podría actualizar mi código 3.6 en consecuencia?
Edit2:
Esto no es un duplicado de esta pregunta . La devolución de llamada DeviceReady fue aprobada incorrectamente en esta pregunta. Este no es el caso en mi aplicación, y no tendría sentido que solo funcione cuando no uso startForeground
en mi servicio.
Parece que tienes un problema relacionado con el ciclo de vida de tu aplicación. Cuando desliza o cierra violentamente la aplicación, el proceso de las aplicaciones se cancela, por lo que al reiniciar si no había guardado los objetos dependientes o las variables en el paquete de estado, volverán como nulos porque la actividad supone que esos elementos están disponibles. ¿Puedes pegar el código que tienes en onCreate()
que ahí está tu cordova de definición.