Cómo ejecutar un process de ~ 30 segundos en segundo plano cada hora (aplicación de iPhone)

Tengo una aplicación para iPhone que tiene un process de 30 segundos que realiza un poco de IO de networking. Básicamente, mientras la aplicación está en segundo plano, quiero que este process se ejecute cada hora (en realidad una vez al día, pero si falla, quiero que vuelva a ejecutarse en horas).

Con las características de background de ios 4, ¿es posible? ¿Si es así, cómo? ¿Cuáles son las limitaciones con las que me enfrentaré?

¡Muchas gracias!

Eche un vistazo a la documentation de Apple sobre cómo ejecutar el código en segundo plano.

http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution.html

Existen pocas forms diferentes de abordar tareas en segundo plano. Las únicas aplicaciones que pueden tener processs totalmente en segundo plano son aplicaciones de "audio", "voip" y "location", y esto debe declararse en Info.plist.

Si su aplicación no es de este tipo, probablemente le resulte difícil hacer lo que quiera con facilidad. Existen methods que le permiten mantener viva su aplicación en segundo plano durante un período de time limitado (también en ese enlace), pero eventualmente su aplicación se cerrará.

Las notifications locales solo le pedirán al usuario que abra la aplicación: ¿realmente desea tener una window emergente de alerta en el teléfono cada 30 segundos?

Estaba haciendo algún tipo de investigación similar, eche un vistazo a esta respuesta SO en caso de que no haya podido encontrarlo antes. Las aplicaciones como DataMan o Data Usage deben tener algún tipo de ejecución periódica del código en segundo plano, así que no estoy 100% convencido de que lo que estás pidiendo sea imposible …

Creo que usar las notifications locales ayudará … verifique lo siguiente …

  1. http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW1
  1. Una aplicación puede crear y progtwigr una notificación local, y el sistema operativo la entrega en la date y hora progtwigdas. Si la entrega cuando la aplicación no está activa en primer plano, muestra una alerta, marca el ícono de la aplicación o reproduce un sonido, lo que se especifica en el object UILocalNotification. Si la aplicación se está ejecutando en primer plano, no hay alerta, señalización o sonido; en cambio, la aplicación: didReceiveLocalNotification: se llama al método si el delegado lo implementa.

  2. El delegado puede inspeccionar las properties de la notificación y, si la notificación incluye datos personalizados en su dictionary userInfo, puede acceder a esa información y procesarla en consecuencia. Por otro lado, si la notificación local solo marca el ícono de la aplicación y el usuario en respuesta inicia la aplicación, la aplicación: didFinishLaunchingWithOptions: method is invoked, pero no se incluye ningún object UILocalNotification en el dictionary de opciones.