FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Bueno, dec, siempre será mejor algo que nada.
Como mucho se le puede pedir al usuario que la active. Ah! por cierto, es una solución parcial, pues estoy comprobando, que cuando recuperas la App al poco tiempo, la mantiene intacta, pero (y esto lo sospecho, no estoy seguro) cuando pasa el tiempo seleccionado para la desactivación de la pantalla sigue "matando" la App y cuando intentas recuperarla, se reinicia. ¡Y yo que pensaba que había resuelto el problema...! Seguiremos investigando.... Saludos a todos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
#2
|
||||
|
||||
Hola a todos,
Cita:
Cita:
En definitiva, que no estamos ante un problema que haya que solucionar, sino ante cómo Android trata a las aplicaciones, no sólo la tuya, de modo que tenemos que adaptarnos a ese trato. |
#3
|
|||
|
|||
Sé estás haciendo un gran esfuerzo, David.
El "tiempo de gracia" al que te refieres, sólo existe haciendo el cambio propuesto en modo desarrollador, si no haces este cambio, no hay "tiempo de gracia" que valga. Mira, el programa en cuestión consiste en en una agenda para usuarios autónomos donde se gestiona desde el aviso del cliente hasta la emisión de la factura. Como cualquier programa que se precie, tendrá unas cuantas variables globales, para no estar repitiendo en cada Unit, y porque son utilizadas y modificadas por otras units. Creo que no será el único programa que se haya "cargado" Android al optimizar el uso de los nuevos terminales, que, por cierto, tienen menos necesidad de recursos que los antiguos, pues disponen de bastante más memoria y almacenamiento que los anteriores. (Repito en los anteriores no pasaba esto) Esta optimización, la entendería más en los antiguos terminales que en los nuevos. En cualquier caso, "matar las aplicaciones" sin permiso del usuario me parece una acto de una dictadura absolutista sin ningún respeto. Recordemos lo del cambio de función de los botones o el problema generado en TMemo con el texto predictivo y ¡quién sabe cuantas cosas más nos iremos encontrando...! Cuanto más lo pienso más grave veo el alcance del problema. Android es un caprichoso dictador, que lo menos que se le podría pedir al desarrollar cada nueva versión es que respetara la compatibilidad con las anteriores. Creo yo. Bueno, que me salgo del tema, espero que alguien pueda ayudarme, (y creo que no soy el único que necesita, o va a necesitar, esta ayuda) A ver si entre todos conseguimos minimizar los efectos de la dictadura (dura) de Android. Seguiremos trabajando. Saludos a todos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) Última edición por jhonalone fecha: 25-07-2017 a las 14:35:01. |
#4
|
||||
|
||||
Creo que estás confundido. Tanto ahora como antes, android cierra los programas que no se están utilizando dependiendo de las necesidades de memoria, recursos, el tiempo de inactividad, etc.
Lo que tú llamas "dictadura", realmente son las normas del funcionamiento de android, es como si dices que hay que acabar con la dictadura de eventos en windows, pero ¡¡¡windows es programación por eventos!!! En cuanto a tu programa, por lo que dices, es simple, como una agenda que es, guarda los datos en una base de datos y no se perderán. |
#5
|
||||
|
||||
Hola a todos,
Cita:
Supongamos que soy un usuario de tu aplicación y hago lo siguiente:
En el caso de arriba, no importará que tu aplicación se reinicie o no, puesto que a mí, como usuario, en nada me afecta. Podré dar de nuevo los mismos pasos sin necesidad de que hubieses guardado nada en los eventos "pause y resume". Ahora supongamos este otro escenario:
En este caso, sí que deberías comprobar acaso que el usuario, en efecto, estaba en el formulario para añadir un nuevo contacto, y que, ya había empezado a escribir el nombre de dicho nuevo contacto. Pues bien, ahora sí, en el evento "pause", guardarías por ejemplo el nombre del formulario, así como los datos ya introducidos. Cuando el usuario volviese de nuevo a la aplicación, esta comprobaría que lo hace desde un "reinicio" (esto ha de comprobarse de alguna forma, por ejemplo, guardando alguna "bandera" en algún sitio cuando la aplicación entra en "background"), y, si es así, buscaría en qué formulario se quedó el usuario y si hay algún dato ya escrito. De modo que al usuario no le importaría si la aplicación se ha reiniciado o no, simplemente él ve que, cuando vuelve a la aplicación (terminó la llamada de teléfono) se encuentra en el formulario para añadir un contacto y se le muestra el nombre del nuevo contacto que escribió anteriormente, de modo que puede continuar con la tarea. |
#6
|
||||
|
||||
Cita:
|
#7
|
|||
|
|||
Hola Casimiro. Gracias otra vez.
Habrás podido comprobar que estaba escribiendo cuando me has respondido. Ya me contarás cómo puedo implementar lo que me propones. Porque yo sólo... creo que no. Un saludo.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
#8
|
|||
|
|||
Bueno, Casimiro.
Los "cuadrados superpuestos" son una representación de dos ventanas en cascada, creo que lo he comentado antes. Hablo de los terminales Samsung que son los que yo uso. En la foto puedes ver los sensores a los que me refiero. Los de la foto de arriba son de un Motorola, que están dentro de la pantalla del terminal y al que me refiero es el cuadrado de la derecha, que hace la misma función que los dos cuadraditos que aparecen a la izquierda de la foto inferior que corresponde a un terminal Samsung Saludos. Sensores.jpg
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) Última edición por jhonalone fecha: 25-07-2017 a las 22:45:08. |
#9
|
||||
|
||||
Te iba a sugerir que uses el SaveState, que es algo que ya comentaste en el hilo. A ver si este material te puede ayudar
https://community.embarcadero.com/bl...sing-savestate Por lo que veo te permite grabar el form como un stream, y luego para leerlo hace eso mismo. Es un mecanismo similar a como se lee en tiempo de ejecución el recurso .dfm para recrear el form que vemos en tiempo de diseño |
#10
|
|||
|
|||
Hola, Casimiro.
Sabes que te admiro por tus conocimientos y tu labor desinteresada en el foro. Pero por primera vez, creo, (y pese al respeto y admiración que te tengo), no estoy de acuerdo contigo. Lo que me estás diciendo, contradice mi experiencia con los aparatos en que he probado. Tengo varios probados y, a partir de la versión 4.4.4 ocurre ésto. Yo pensaba que era la 6.0.1 que es la última que yo uso, (sustituyendo a la 4.1.2 que usaba antes), pero he decidido probarlo en unos cuantos más y he comprobado que empieza a fallar a partir de la 4.4.4. En la 4.4.2 todavía no "mata" la app. Observo que la primera vez que he visto con dos cuadrados superpuestos en el sensor inferior izquierdo, ha sido en la 4.4.4, en cuya versión ya estaba cambiado el comportamiento de los botones que explicaba en otro hilo. Esto pasa desde que quitaron vkMenu de este sensor izquierdo. También he podido comprobar que (en las opciones de desarrollador), la opción de "No mantener Actividades" por defecto está deshabilitada hasta la versión 6.0.1, en que viene habilitada por defecto. Esto es lo que empíricamente he podido observar. Por otro lado, con respecto a lo que dice David: Sí, podemos hacer todos los arreglos que se nos ocurran. Detectar en la pantalla que estaba y restituirla. Lo cual no deja de ser una labor bastante ardua. En lo que respecta a mi programa, no es una "simple agenda" es algo más. Lo puedes bajar y probarlo desde Google Play. Se llama "RegiControl". Entonces comprenderás lo que significa devolverle al sitio de interrupción. (Creo que tiene 12 o 14 unidades más un TWebBrowser para la ayuda en línea) Por los datos no tengo problema, pues se van salvando al tiempo que se van tecleando. Pero como lleva datos personales, al entrar debes teclear una clave de acceso. Y no me dirás que no es una imagen nefasta, tener que teclearla cada vez que dejas el programa para hacer otra cosa. Claro. Tu me dirás "no pongas clave". Pues te digo que hay que ponerla porque lleva datos muy personales (Nif, direecciones, trabajos realizados...). No es una "simple agenda", es un sistema completo de control de tareas, presupuestos, trabajos en curso y facturación. Sigo manteniendo que los cambios de versión de Android son una falta de respeto a los programadores, al menos los de Delphi, que son los que yo conozco. El programa es bastante complejo y la solución no la veo sencilla, (si es que la hay). ¡Ah...! Os recuerdo que ya tuve que poner un mensaje avisando al usuario de que el teclado predictivo puede fallar a partir de la versión 6.0.1 de Android. En este hilo, que está sin poderse resolver. Gracias, de nuevo, por vuestro interés. Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) Última edición por jhonalone fecha: 25-07-2017 a las 21:58:31. |
#11
|
||||
|
||||
Haces bien, puedo estar equivocado
Cita:
Por cierto, ese modo de funcionar ¿no serán funcionalidades instaladas por el fabricante de la marca de esos smartphones? |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Dejar una aplicación siempre en primer plano | Kalikatres | Desarrollo en Delphi para Android | 19 | 28-11-2015 16:48:47 |
Buscar Aplicacion en Ejecucion y traerla al frente | Enan0 | Varios | 0 | 29-09-2012 13:52:25 |
Aplicación en primer plano | jordillussa | Varios | 4 | 20-03-2007 19:58:43 |
Ejecutar aplicacion externa y que este en primer plano | Lorenzati | API de Windows | 11 | 06-07-2004 18:22:10 |
Aplicación siempre en primer plano | Novás | Varios | 2 | 08-03-2004 09:31:09 |
|