2012-05-19 13 views
5

Estoy escribiendo una aplicación para un cliente donde los usuarios ingresarán datos durante el día, luego en un punto dado de la noche (por ejemplo, a medianoche) los datos del usuario para ese día debería subir al servidor.Programe una tarea de aplicación iOS para ejecutarla en segundo plano

Por lo tanto, necesito programar un método para ejecutar en mi aplicación a la medianoche, incluso si la aplicación está en segundo plano. Este método sincronizará los datos recopilados con el servidor y descargará los cambios.

Para lograr esto, imagino que necesito configurar la aplicación para que siempre se ejecute en segundo plano (es decir, más de 10 minutos) luego programo la función para que se ejecute después de un tiempo específico. ¿Hago esto usando performSelector: withDelay:? ¿O necesito algo más sólido porque la aplicación estará en segundo plano?

Gracias chicos!

+0

¿Recibió alguna solución para esto? –

Respuesta

0

No creo que su aplicación o lo que está tratando de hacer esté calificado para los requisitos de Apple para la tarea de fondo de larga ejecución. Consulte la sección "Implementación de tareas en segundo plano de larga duración" de este documento desde Apple.

+0

Ese es un buen punto, pero en realidad la aplicación puede ser elegible para el seguimiento continuo de la ubicación. El motivo de la sincronización de datos a medianoche es que durante el día es probable que el usuario esté fuera de la conexión a Internet. Entonces, quizás la mejor opción sea rastrear los principales cambios de ubicación, y en cada cambio verificar la conectividad a Internet. Si el usuario tiene una señal lo suficientemente fuerte, la sincronización podría comenzar en ese momento y luego, luego, desactivar la sincronización de datos hasta el día siguiente. ¡Gracias por la ayuda! – theDuncs

2

Puede consultar UILocalNotifications. Puede programar ese evento y luego establecer un icono de insignia para que el usuario sepa que procesó algo (o no).

Información sobre estos HERE

+0

No quiero que el usuario sepa nada sobre la sincronización de datos, así que idealmente (a) programaría una notificación local para la medianoche, luego (b) a medianoche cuando se ejecuta el código de notificación puedo realizar la sincronización de datos y luego NO cualquier notificación en la pantalla. ¿Esto suena factible? O para usar notificaciones locales, ¿tengo que levantar una alerta en la pantalla? – theDuncs

+0

¡Gracias por su ayuda, por cierto! Muy apreciado. – theDuncs

+0

Creo que puede hacer lo que está tratando de hacer sin un indicador visual para el usuario. –

Cuestiones relacionadas