La aplicación se comporta diferente después de salir y volver a entrar
Córdoba, Versión 3.5.0-0.2.6
<body><script> alert("documentready"); document.addEventListener("deviceready", function() { alert("deviceready"); }, false); </script></body>
Entro en la aplicación después de implementar, obtengo 'documentready' y 'deviceready' alertado. Dejo la aplicación con el botón Atrás. Sólo obtengo documentready. Cuando cierro la aplicación con el gestor de tareas o vuelvo a implementarla, obtengo las dos alertas.
- Repetición inesperada de "nombre del paquete" mientras se reanudaba en '' nombre del paquete '' Error en Android
- Cómo probar el método Activity onDestroy
- Vida de la aplicación Android: tal vez infinita?
- ¿Cómo funcionan los ciclos de vida de la actividad de Android en relación con la aplicación completa?
- Implementación de Android de los métodos de ciclo de vida puede llamar a la aplicación de superclase después de hacer cualquier trabajo?
Quiero que este comportamiento se produzca también después de volver a ingresar normal en la aplicación.
Yo preferiría una solución donde no hay evidencia de que la aplicación se ha abierto antes, después de dejarlo. Nada restaurado de la recolección de basura, etc. Idealmente ejecutando el mismo registro que el método de cierre de la fuerza desde el administrador de tareas.
OK: Quiero, cuando cierro mi aplicación a través del botón de retroceso , que exactamente lo mismo sucede, como cuando abro el administrador de tareas y forzar a cerrar mi aplicación . ¿Esto es al menos teóricamente posible?
Por otra parte, me gustaría que la aplicación, cuando se deja a través de botón de retroceso, para estar en un estado de 'hibernación-como', que si vuelvo a entrar se comporta absolutamente como nunca se ha dejado (llamada misma lógica como cuando el menú / Botón de inicio ).
PREGUNTA TODAVÍA ABIERTA – 50 PRENSA PARA GANAR
- ¿Cómo probar el código construido para salvar / restaurar el ciclo de vida de una actividad?
- Ciclo de vida de la actividad lado a lado
- Android ¿Cómo volver a conectar a AsyncTask después onDestroy () y relanzar onCreate ()?
- Android - Tiempo de vida de las diferentes opciones de almacenamiento
- ¿Cómo comprobar si una actividad es la última en la pila de actividades de una aplicación?
- Ciclo de vida de la actividad de Android: orden de estado cuando se inicia una nueva actividad
- Realizando operaciones de larga duración en onDestroy
- Permitir que el diálogo se muestre antes o durante onPause ()?
Añada esto a su mainActivity.java
(lo que se llama en su proyecto):
@Override public void onBackPressed() { finish(); }
No estoy seguro de por qué usted querría tal comportamiento, pero usted puede matar la aplicación en la prensa posterior (o en el final). Llamar a android.os.Process.killProcess(android.os.Process.myPid())
es como forzar una parada del administrador de tareas.
Añada esto a su CordovaActivity y debe matar todo sin restos:
@Override public void onBackPressed() { android.os.Process.killProcess(android.os.Process.myPid()); System.exit(0); }
He implementado lo mismo, he usado el evento backbutton de Córdoba. Puedes encontrar más información sobre el evento backbutton aquí: link . No puedo encontrar la documentación sobre la función app.exitApp (), pero sí sé que sólo está disponible para android y amazon-fireos.
Vea el siguiente fragmento de código, solo necesita saber cuándo desea salir, pero puede saberlo desde el objeto document.location o algo. Espero eso ayude.
document.addEventListener("backbutton", function (evt) { // replace this with some logic (maybe document.location) to now if you are on the main page or not if (true) { // Check if methods exists if (typeof navigator.app !== "undefined" && typeof navigator.app.exitApp !== "undefined") { evt.preventDefault(); navigator.app.exitApp(); } } else { history.back(); } }, false);
Esto debería funcionar:
En my_app_dir-> config.xml add
<preference name="KeepRunning" value="false" />
Y por debajo
Document.addEventListener ("deviceready", function () {…
añadir
document.addEventListener('backbutton', function() { navigator.app.exitApp(); }, false);
Después abra cmd
, vaya a su carpeta de proyecto y ejecute cordova build android; cordova run --device android;
cordova build android; cordova run --device android;
Lo que funciona para mí, el problema podría ser que el DOM no está listo cuando se agrega el detector de eventos. Y puede ser causada por una carga más rápida debido a la aplicación que se almacena en caché. Utilice una función de ejecución automática para agregar el detector de eventos y estará seguro de que el DOM está cargado.
function domIsReady() { alert('DOM is ready') } function deviceIsReady() { alert('Device is Ready') } ( function() { if (document.readyState === "complete") { domIsReady(); } else { if (window.addEventListener) { window.addEventListener('DOMContentLoaded', domIsReady, false); } else { window.attachEvent('onload', domIsReady); } }; document.addEventListener("deviceready", deviceIsReady, true); }());
- Cookies de Android para la dirección IP
- Las funcionalidades de JQuery no funcionan cuando carga los datos html de una cadena en webview