Compartir vía


Registro de aplicaciones de Xamarin.iOS para que se ejecuten en segundo plano

El registro de tareas individuales para privilegios en segundo plano funciona para algunas aplicaciones, pero ¿qué ocurre si se pide constantemente a una aplicación que realice tareas importantes y de larga duración, como obtener instrucciones para el usuario a través de GPS? En su lugar, las aplicaciones como estas deben registrarse como aplicaciones necesarias en segundo plano.

El registro de una aplicación indica a iOS que la aplicación debe tener privilegios especiales necesarios para realizar tareas en segundo plano.

Categorías de registro de aplicaciones

Las aplicaciones registradas pueden estar en varias categorías:

  • Audio: los reproductores de música y otras aplicaciones que funcionan con contenido de audio se pueden registrar para seguir reproduciendo audio incluso cuando la aplicación ya no está en primer plano. Si una aplicación de esta categoría intenta hacer algo distinto de reproducir audio o descargar mientras está en segundo plano, iOS lo finalizará.
  • VoIP: las aplicaciones con Protocolo llamada de voz sobre IP (VoIP) obtienen los mismos privilegios concedidos a las aplicaciones de audio para seguir procesando el audio en segundo plano. También se les permite responder según sea necesario a los servicios VoIP que los impulsan, para mantener sus conexiones activas.
  • Accesorios externos y Bluetooth: reservado para aplicaciones que necesitan comunicarse con dispositivos Bluetooth y otros accesorios de hardware externos, el registro en estas categorías permite que la aplicación permanezca conectada al hardware.
  • Newsstand: una aplicación Newsstand puede seguir sincronizando contenido en segundo plano.
  • Ubicación: las aplicaciones que usan datos de ubicación de red o GPS pueden enviar y recibir actualizaciones de ubicación en segundo plano.
  • Fetch (iOS 7+): una aplicación registrada para los privilegios fetch en segundo plano puede comprobar un proveedor de contenido nuevo a intervalos regulares y presentar al usuario contenido actualizado cuando el usuario vuelva a la aplicación.
  • Notificaciones remotas (iOS 7+): las aplicaciones pueden registrarse para recibir notificaciones de un proveedor y usar la notificación para iniciar una actualización antes de que el usuario abra la aplicación. Las notificaciones pueden aparecer en forma de notificaciones push u optar por reactivar la aplicación de forma silenciosa.

Las aplicaciones se pueden registrar estableciendo la propiedad Modos en segundo plano necesarios en la Info.plist de la aplicación. Una aplicación puede registrarse en tantas categorías como requiera:

Setting the background modes

Para obtener una guía paso a paso para registrar una aplicación para obtener actualizaciones de ubicación en segundo plano, consulte el Tutorial sobre Ubicación en segundo plano.

Propiedad de aplicación que no se ejecuta en segundo plano

Otra propiedad que se puede establecer en Info.plist es la Aplicación que no se ejecuta en segundo plano o la propiedad UIApplicationExitsOnSuspend:

Disabling Background Running

Esto tiene el mismo efecto que establecer la configuración actualización de la aplicación en segundo plano en off en iOS 7+, excepto que solo se puede cambiar en el lado del desarrollador y está disponible para iOS 4 y versiones posteriores. La aplicación se suspenderá inmediatamente después de entrar en segundo plano y no podrá realizar ningún procesamiento.

Use esta propiedad si la aplicación no está diseñada para controlar el procesamiento en segundo plano, ya que ayuda a evitar un comportamiento inesperado.

Fetch en segundo plano y notificaciones remotas

Fetch en segundo plano y las notificaciones remotas son categorías de registro especiales introducidas en iOS 7. Estas categorías permiten que las aplicaciones reciban contenido nuevo de un proveedor y se actualicen en segundo plano. En la sección siguiente se exploran las notificaciones remotas y fetch con mayor detalle, y también se presenta el reconocimiento de la ubicación como medio para actualizar una aplicación en segundo plano en iOS 6.