2012-03-08 9 views
9

Tengo una aplicación que requiere un seguimiento de ubicación y creo que encaja perfectamente dentro de uno de los modelos de fondo permitidos. Sin embargo, tengo que publicar en un servicio de red cuando haya cambios significativos de ubicación. He visto comentarios que indican que el acceso a la red está prohibido en el procesamiento en segundo plano, pero no lo leí en los documentos de Apple.iOS acceso a la red de aplicaciones en segundo plano

¿Alguien sabe si es kosher (las políticas de Apple) hacer actualizaciones de red ocasionales y muy rápidas en un proceso en segundo plano?

Respuesta

11

Buen punto, de acuerdo con el Apple documentation solamente los siguientes usos están permitidos en segundo plano y cada servicio deben registrarse:

  • de audio-La aplicación reproduce contenido audible para el usuario, mientras que en el fondo. (Este contenido incluye la transmisión de contenido de audio o video usando AirPlay).
  • ubicación: la aplicación mantiene a los usuarios informados de su ubicación, incluso mientras se ejecuta en segundo plano.
  • voip: la aplicación brinda la posibilidad al usuario de hacer llamadas telefónicas usando una conexión a Internet.
  • Newsstand-content: la aplicación es una aplicación de Kiosko que descarga y procesa contenido de revistas o periódicos en segundo plano.
  • external-accessory-La aplicación funciona con un accesorio de hardware que necesita entregar actualizaciones en un horario regular a través del Marco de accesorios externo .
  • bluetooth-central-La aplicación funciona con un accesorio Bluetooth que necesita entregar actualizaciones en un horario regular a través del framework CoreBluetooth.

Aparte de estos servicios, se puede crear una tarea Finito de longitud en el fondo que realmente le dan la posibilidad de poner fin a un proceso red.

Esto puede ser importante si su aplicación está realizando una tarea importante, como escribir los datos del usuario en el disco o la descarga de un archivo importante desde un servidor de red.

En relación con su pregunta, no está muy claro si puede o no hacer una conexión de red rápida si tiene un servicio de localización ejecutándose en segundo plano.Yo diría SÍ por una conexión corta, pero no del todo segura. Desde iOS 4.0 este uso fue denegado y claro en la documentación, ahora esa parte ha sido eliminada.

2

si utiliza el fondo para una conexión rápida. Apple no te permitirá ejecutar en segundo plano como quieras.

NO Si su aplicación no cae en la categoría de VoIP, música o GPS; entonces no puedes ejecutar en segundo plano.

más aquí: Update my app when it is in background


Usted podría utilizar ASIHTTPRequest.

ASIHTTPRequest tiene una propiedad setShouldContinueWhenAppEntersBackground:. el valor predeterminado es NO, puede activar YES para que tenga un proceso de red en segundo plano.

+0

Thx. Para aclarar, la pregunta es si Apple permite el acceso a la red cuando se ejecuta en segundo plano. – michael

+0

He actualizado mi respuesta. – HelmiB

+0

Thx de nuevo, pero el enlace realmente no responde mi pregunta, eso es más acerca de terminar una solicitud de red existente. Quiero ejecutar indefinidamente en segundo plano y hacer la solicitud de red ocasional (digamos enviar 1000 bytes por hora). Se trata de una política de Apple sobre el acceso a * red * en aplicaciones de fondo. – michael

1

La documentación de Apple parece un poco confusa en la estricta política. Definitivamente hay aplicaciones en la tienda de aplicaciones que hacen llamadas de red esporádicas mientras se ejecutan en segundo plano como una aplicación basada en la ubicación. Un ejemplo es la aplicación Geoloqi.

Cuestiones relacionadas