Ver la versión completa : Programación iOS. Evitar que una aplicación se cierre
Hola, buenos días.
Hace unos días que estoy investigando sobre como construir un servicio para iOS. Tengo una aplicación que de vez en cuando tiene que estar comprobando dónde estamos y en caso de cumplirse cierta condición pues enviar un mensaje al usuario.
He estado mirando, pero las notificaciones locales no me sirven. Alguno se os ocurre como se puede conseguir algo similar? Tiene que haber alguna forma, porqué por ejemplo el "whatsapp" no se cierra, y aunque inicies el terminal móvil y no enciendas la app igualmente van a llegarte notificaciones de mensajes entrantes.
Muchas gracias!!!
^MiSaTo^
13/07/2012, 11:30
El whatsapp usa notificaciones Push, por eso te avisa cuando te llega algo aunque lo tengas cerrado.
En realidad en iOS (a no ser que haya cambiado ahora) no puedes tener un demonio corriendo por debajo. La multitarea funciona un poco distinto a una multitarea REAL.
Así que creo que o usas push o estás jodido xD
EDIT: de todos modos hace muuuuchos meses que no programo nada para iOS y nunca he hecho nada con multitasking, así que si alguien puede aportar algo más yo tb estaré agradecida
Hola, antes de nada gracias por contestar. Vale, eso lo acabo de ver, pero por ejemplo, en mi caso lo único que tengo que hacer es cada X tiempo (cada 5 minutos) comprobar la posición del usuario y mirar si está o no cerca de algo y enviarle una notificación Local Push. Lo que no sé exactamente es lo de comprobar cada cierto tiempo mi posición.... Lo de generar el mensaje local push más o menos lo tengo claro.
^MiSaTo^
13/07/2012, 11:33
Pues sinceramente no se si puedes tener en background el GPS, aparte que te va a bajar la batería que va a dar gusto
creo que con el devkit oficial es practicamente imposible tener en background algo asi, ya qu een cuanto necesite la ram que esta ocupando, lo "cerrara". Si que he observado que algunas aplicaciones de cydia se quedan constantemente en el background funcionando, pero obviamente no son oficiales. Sobre como se hace ya no lo se, porque no soy programador. xdd
GameMaster
13/07/2012, 11:44
creo que con el devkit oficial es practicamente imposible tener en background algo asi, ya qu een cuanto necesite la ram que esta ocupando, lo "cerrara". Si que he observado que algunas aplicaciones de cydia se quedan constantemente en el background funcionando, pero obviamente no son oficiales. Sobre como se hace ya no lo se, porque no soy programador. xdd
gran aporte!
^MiSaTo^
13/07/2012, 11:51
Con el oficial yo creo que no se puede por lo que comentas syto, en realidad la multitarea te "guarda" el estado de la aplicación y no puedes dejar nada corriendo en background. Y esto tiene su lógica porque normalmente no quieres que ninguna aplicación se quede ahí comiendo recursos a saco para que se te gaste la batería. De hecho nosotros en muchas aplis de android simulamos un comportamiento parecido por la misma razón.
Toda ayuda se agracede.
He encontrado algo aquí: http://www.programadorphp.org/blog/cursos/geolocalizacion-y-multitarea-en-ios-posicionamiento-gps-y-mapkit-de-google/
Explica algo, según he entendido, sobre el tema de ponerlo en notificaciones locales cada X tiempo.
---------- Post añadido a las 11:54 ---------- Post anterior a las 11:52 ----------
Ya, lo entiendo pero creo que tiene que haber alguna cosa para cada cierto tiempo, mediante tareas repetitivas, comprobar dónde nos encontramos, luego apagar el gps y mostrar un mensaje push local.
Con el oficial yo creo que no se puede por lo que comentas syto, en realidad la multitarea te "guarda" el estado de la aplicación y no puedes dejar nada corriendo en background. Y esto tiene su lógica porque normalmente no quieres que ninguna aplicación se quede ahí comiendo recursos a saco para que se te gaste la batería. De hecho nosotros en muchas aplis de android simulamos un comportamiento parecido por la misma razón.
te la guarda, y ojo, que no siempre lo hace. xddddddddddddddddddddddddddddddddddddddddddd
---------- Post añadido a las 12:04 ---------- Post anterior a las 12:01 ----------
Toda ayuda se agracede.
He encontrado algo aquí: http://www.programadorphp.org/blog/cursos/geolocalizacion-y-multitarea-en-ios-posicionamiento-gps-y-mapkit-de-google/
Explica algo, según he entendido, sobre el tema de ponerlo en notificaciones locales cada X tiempo.
---------- Post añadido a las 11:54 ---------- Post anterior a las 11:52 ----------
Ya, lo entiendo pero creo que tiene que haber alguna cosa para cada cierto tiempo, mediante tareas repetitivas, comprobar dónde nos encontramos, luego apagar el gps y mostrar un mensaje push local.
la cosa es tan sencilla como que ios de serie esta tan capado que no puedes hacer determinadas cosas.
Por ejemp`lo algo parecido a lo que buscas esta en cydia con uno de esos localizadores que te sirven si pierdes el telefono para poder enviarle un sms, y dicho sms contiene una clave que hace que el programa localice la posicion y la devuelva por sms. Ademas puedes controlar el telefono a traves de ordenes por sms ¿como? pues porque la aplicacion esta constantemente abierta, incluso aunque no aparezca en la barra de tareas. Al fin y al cabo ese programa funciona del mismo modo que tu quieres hacer funcionar el tuyo, solo qu ehabria que cambiar lo de funcionar por sms a que funcionara cada 5 min, o 10 min, o lo que tu quieras. Pero insisto, esto esta hecho para moviles jailbreakeados. Con devkit oficial nanai.
saucjedi
13/07/2012, 12:06
gran aporte!
¡Te pasaste! Mis Kudos y mis Dies
^MiSaTo^
13/07/2012, 12:15
te la guarda, y ojo, que no siempre lo hace. xddddddddddddddddddddddddddddddddddddddddddd
Ahí ni idea, mi iPhone es 3G y no tiene multitarea xD Y en el iPad normalmente cierro todo porque me da por culo tener cosas abiertas XD
Ahí ni idea, mi iPhone es 3G y no tiene multitarea xD Y en el iPad normalmente cierro todo porque me da por culo tener cosas abiertas XD
a mi en el 3gs y en el ipad 1 como abra una aplicacion, y luego dos mas, al volver a la primera es como si la hubiera abierto por primera vez. XDDD En el iphone 4 si que he observado que aguanta mas. Obviamente porque tiene mas ram. Pero no funciona muy bien no. Creo que esto ya es algo que hablamos tu y yo por aqui cuando empece a usar ios y no entendia muy bien como iba. Osea que ahora te confirmo que la supuesta multitarea ES PESIMA. XDDD. Y con cada ios, va a peor. Cosas de eso llamado obsolescencia programada, ya sabes....
^MiSaTo^
13/07/2012, 12:20
a mi en el 3gs y en el ipad 1 como abra una aplicacion, y luego dos mas, al volver a la primera es como si la hubiera abierto por primera vez. XDDD En el iphone 4 si que he observado que aguanta mas. Obviamente porque tiene mas ram. Pero no funciona muy bien no. Creo que esto ya es algo que hablamos tu y yo por aqui cuando empece a usar ios y no entendia muy bien como iba. Osea que ahora te confirmo que la supuesta multitarea ES PESIMA. XDDD. Y con cada ios, va a peor. Cosas de eso llamado obsolescencia programada, ya sabes....
Tampoco me sorprende nada viniendo de Apple XDD Y ya te digo, la verdad que no he probao. Miraré en el iPad 2 por curiosidad, claro que no tengo ahora mismo otro chisme pa comparar xDD
De todos modos como uso el iPhone y el Lumia como teléfonos personales, y ninguno tiene multitarea real (el WinPhone se hace igual o peor que en iOS xD) pues la verdad que estoy acostumbrada a que las cosas se cierran y yasta y para todo lo demás, notificaciones push
si. Es algo a lo que te acabas acostumbrando, no te queda mas remedio. Y gracias al invento de las push se hace mas llevadero, ya que asi no tienes por que tener abierto ni el wasap ni ei im pro por ejemplo. Pero por eejemplo, ahi en el impro+ que es un programa para chats de face, messenger y otros mensajeros es donde mas me molesta, porque tarda BASTANTE en abrirse y conectarse al msn o a otros, y claro, tiene la costumbre de que en cuanto abres otra app, pues al volver a el es como si lo hubieras tenido cerrado y le cuesta mas de 30 segundos volver a conectarse. Pero bueno, es en un caso concreto. A veces tambien me ha jodido estar con safari escribiendo aqui, y pensar "ostras, voy a la app de wordpress a mirar una cosa de mi blog" y cuando vuelvo a safari lo que tenia escrito ha volao. xddd
A veces no se que esperais algunos, que estamos hablando de telefonos moviles no de ordenadores, la multitarea es una ñapa para aparentar, no algo real
A ver, es obvio que la multitarea de iOS es más bien nua PEDAZO DE MIERDA. En el iPad 1 NO funciona, es así, ni con Safari, es raro raro el caso en el que funciona bien. Partiendo además de la base de que no es que siga corriendo en segundo plano, si no que la "congela".
Mmmm creo recordar que alguna de las apps de Navegación GPS que he probado, si que al salir de ellas usando el HOME, seguían tirando de señal GPS y dando indicaciones. Quizá por ahí puedes buscar algo...
Pues no entiendo como puede estar capada esa funcionalidad. Así que es del todo imposible hacer un localizador de flotas, por ejemplo¿? Sin jailbreakear digo.
JoJo_ReloadeD
13/07/2012, 15:36
gran aporte!
Pues anda que el tuyo... ultimamente andas en un plan que si no te conociera pensarias que eres un novato tratando de entrar al CV...
^MiSaTo^
13/07/2012, 15:39
A ver, es obvio que la multitarea de iOS es más bien nua PEDAZO DE MIERDA. En el iPad 1 NO funciona, es así, ni con Safari, es raro raro el caso en el que funciona bien. Partiendo además de la base de que no es que siga corriendo en segundo plano, si no que la "congela".
Mmmm creo recordar que alguna de las apps de Navegación GPS que he probado, si que al salir de ellas usando el HOME, seguían tirando de señal GPS y dando indicaciones. Quizá por ahí puedes buscar algo...
Pues chico, a mi en Safari SIEMPRE me guarda la sesion que tenga abierta (las pestañas y demás). Eso sí lo he comprobado xD
Eso sí, yo tengo un iPad 2.
De todos modos, esque iOS no tiene multitarea implementada como android.Amos lo que no tiene son procesos en background excepto algunas excepciones (como por ejemplo el reproductor de música).
No es que sea o no una mierda, sino que no lo tienen implementado de la misma manera. Te puede gustar más o menos, pero los motivos por los que está hecho así a mi no me parecen mal. Me parece mejor que se cierren las cosas en mi teléfono a tener cosas ahi en segundo plano, que aunque quiera no puedo cerrar y mientras comiéndome la batería.
Por otro lado, es el programador el que decide cómo implementar la multitarea de la apli (en cierto modo).
Pues a mi en el ipad1 SI me funciona la "multitarea", yo cierro safari y cuando vuelvo tengo las mismas pestañas, tengo el firm 4.3 en el ipad
Pues chico, a mi en Safari SIEMPRE me guarda la sesion que tenga abierta (las pestañas y demás). Eso sí lo he comprobado xD
Eso sí, yo tengo un iPad 2.
De todos modos, esque iOS no tiene multitarea implementada como android.Amos lo que no tiene son procesos en background excepto algunas excepciones (como por ejemplo el reproductor de música).
No es que sea o no una mierda, sino que no lo tienen implementado de la misma manera. Te puede gustar más o menos, pero los motivos por los que está hecho así a mi no me parecen mal. Me parece mejor que se cierren las cosas en mi teléfono a tener cosas ahi en segundo plano, que aunque quiera no puedo cerrar y mientras comiéndome la batería.
Por otro lado, es el programador el que decide cómo implementar la multitarea de la apli (en cierto modo).
Pues a mi en el ipad1 SI me funciona la "multitarea", yo cierro safari y cuando vuelvo tengo las mismas pestañas, tengo el firm 4.3 en el ipad
A ver, quizá fuí muy brusco xD Quiero decir que, abro safari, cargo tres pestañas, me voy a twitter, vuelvo, y se recargan todas las pestañas.
Otro caso. Entro al foro, cargo 5 hilos, parece que se cargan. Leo uno y cierro la pestaña, se va a la siguiente y la recarga.
Eso es algo que no entiendo. ¿Se queda sin ram? ¿O qué le pasa? Está con iOS 5.1.1 (Sí, el último que va a tener...) Quizá me merecería un downgrade?
Pues a mi en el ipad1 SI me funciona la "multitarea", yo cierro safari y cuando vuelvo tengo las mismas pestañas, tengo el firm 4.3 en el ipad
Eso no es multitarea. Eso es que el safari simplemente "guarda la partida", dicho en terminos jugones para que nos entendamos. Xdd
---------- Post added at 17:22 ---------- Previous post was at 17:19 ----------
A ver, quizá fuí muy brusco xD Quiero decir que, abro safari, cargo tres pestañas, me voy a twitter, vuelvo, y se recargan todas las pestañas.
Otro caso. Entro al foro, cargo 5 hilos, parece que se cargan. Leo uno y cierro la pestaña, se va a la siguiente y la recarga.
Eso es algo que no entiendo. ¿Se queda sin ram? ¿O qué le pasa? Está con iOS 5.1.1 (Sí, el último que va a tener...) Quizá me merecería un downgrade?
Eso es sencillamente optimizacion de recursos. Recuerda que por muy potente que sea, sigue sin ser un pc, y si tuviera todas las paginas cargadas en ram a la vez se resentiria muchisimo el rendimiento. Un downgrade ahi no te sirve de nada porque sencillamente safari esta diseñado asi. Safari y todos los browsers alternativos. Si lo hacen asi es por algo xdddd.
Es una lástima pero no podré implementar el tema del aviso por regiones en iOS, o si lo implemento únicamente será mientras la aplicación esté en funcionamiento.
Otra cosilla, alguno sabe como distribuir una aplicación sin pasar por el market oficial? He leído sobre el tema del Adhoc pero no lo acabo de ver claro. Lo suyo sería poder enviar la aplicación por correo electrónico a un usuario y que éste pueda instalarla sin problemas.
Un saludo!
^MiSaTo^
18/07/2012, 10:42
Es una lástima pero no podré implementar el tema del aviso por regiones en iOS, o si lo implemento únicamente será mientras la aplicación esté en funcionamiento.
Otra cosilla, alguno sabe como distribuir una aplicación sin pasar por el market oficial? He leído sobre el tema del Adhoc pero no lo acabo de ver claro. Lo suyo sería poder enviar la aplicación por correo electrónico a un usuario y que éste pueda instalarla sin problemas.
Un saludo!
Tú te has leído lo básico de desarrollar para iOS? XDD
No, no puedes distribuir NADA sin estar en el AppStore. no market oficial, el UNICO market, que esto no es como Android.
Tienes la opción del AdHoc, pero necesitas las IDs de los dispositivos que vayan a usar tu apli. Por ejemplo yo eso lo hice así para una campaña de publicidad con una apli, que sólo iba en 15-20 iPads concretos. Si no es ese caso, entonces tienes que pasar por el AppStore.
PD: sobre tu pregunta de tener lo del GPS en background, he buscado un poco en Google y de los primeros resultados ha salido esto: http://stackoverflow.com/questions/4400628/ios-multi-tasking-track-gps-location
No se si lo habrás visto ya, pero por si te sirve de algo.
Tú te has leído lo básico de desarrollar para iOS? XDD
No, no puedes distribuir NADA sin estar en el AppStore. no market oficial, el UNICO market, que esto no es como Android.
Tienes la opción del AdHoc, pero necesitas las IDs de los dispositivos que vayan a usar tu apli. Por ejemplo yo eso lo hice así para una campaña de publicidad con una apli, que sólo iba en 15-20 iPads concretos. Si no es ese caso, entonces tienes que pasar por el AppStore.
PD: sobre tu pregunta de tener lo del GPS en background, he buscado un poco en Google y de los primeros resultados ha salido esto: http://stackoverflow.com/questions/4400628/ios-multi-tasking-track-gps-location
No se si lo habrás visto ya, pero por si te sirve de algo.
Pues sí, ya lo había visto. Estoy en ello... .ejjeejeje.
Sobre lo de lo que me has comentado sí, los terminales serían algunos en concreto.
^MiSaTo^
18/07/2012, 10:53
Pues sí, ya lo había visto. Estoy en ello... .ejjeejeje.
Sobre lo de lo que me has comentado sí, los terminales serían algunos en concreto.
Entonces simplemente es generar el adhoc para esos terminales y ya está. Incluso puedes colocar el ejecutable en una web y que entren directamente desde el iPhone/iPad a esa web. Pinchando en el link que les des se les instalaría solo (así distribuía yo las betas de pepephone, por ejemplo).
Para generar el adhoc sigue los pasos que hay en la zona de developer de apple y ya está ;)
Ah, bién. Pues ya intentaré hacerlo, a ver si lo consigo.
Entonces simplemente es generar el adhoc para esos terminales y ya está. Incluso puedes colocar el ejecutable en una web y que entren directamente desde el iPhone/iPad a esa web. Pinchando en el link que les des se les instalaría solo (así distribuía yo las betas de pepephone, por ejemplo).
Para generar el adhoc sigue los pasos que hay en la zona de developer de apple y ya está ;)
^MiSaTo^
18/07/2012, 11:05
Ah, bién. Pues ya intentaré hacerlo, a ver si lo consigo.
Es muy facil, es sólo seguir los pasos que vienen ahí punto por punto y ya. Así que no te preocupes ;)
Holas!! Conseguí hacer el tema del adhoc sin problemas, pero aún estoy con el tema del gps. Cambiando un poco de tema... estoy intentando pintar el recorrido entre una localización y otra. Sabes si existe alguna librería que simplifique un poco? Sé, que tengo que hacer una llamada a la api de google, obtener mediante json o xml e ir pintando... pero seguramente haya alguna librería que lo facilite un poco.
Muchas gracias!
De la libreria ni idea para pintar el mapa ni idea, sobre tener el gps abierto corriendo en el background la respuesta es no, o al menos era no la ultima vez que hice una app (hace 1 año)
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.