¿Qué es ejecutar tareas en background y por qué puede ser interesante?

¿Qué es ejecutar tareas en background en iOS?

El sistema operativo iOS gestiona diferentes estados para las aplicaciones instaladas en los dispositivos.

iOS background

Tal y como puede verse en el esquema, además de los cinco estados, existen dos grandes fases: Foreground y Background que engloban distintos estados.

Cuando el usuario está usando una aplicación y a continuación pulsa el botón de Home, la aplicación pasa a modo Background. En función del sistema operativo, a partir de ese momento la aplicación tendrá un tiempo máximo durante el cual podrá realizar operaciones.

¿Cómo se comportan las aplicaciones en background?

En iOS 6 cuando una aplicación pasa a background puede quedar activa realizando operaciones en segundo plano durante un periodo de tiempo máximo de 10 minutos tras los cuales, el sistema se encarga de suspender por completo todos los procesos de la misma. En iOS 7 el periodo de tiempo tras el cual las aplicaciones son suspendidas por el sistema se redujo a3 minutos.

Algunas aplicaciones como las que reproducen música, las que hacen uso del micrófono o las que emplean la localización del usuario son detectadas por el sistema y no son suspendidas al pasar a background. Sin embargo, como desarrolladores, puede ser interesante implementar otro tipo de operaciones, tales como la transferencias de archivos donde sea posible descargar o cargar contenido, aun habiéndose excedido el tiempo máximo en el que una aplicación se mantiene en el estado de background.

NSURLSession

Para cubrir esta necesidad iOS7 incluye nuevas características entre las que se encuentra la nueva clase NSURLSession que permite el uso de sesiones. El objetivo de esta nueva clase es mejorar la ya existente: NSURLConnections. Un objeto de la clase NSURLSession tendrá a su vez tareas: NSURLSessionTask, de modo que sea capaz de manejar las principales operaciones con el protocolo HTTP en segundo plano. Las tareas pueden ser de tres tipos:

– Tareas para la gestión de datos: NSURLSessionDataTask
– Tareas para la carga de datos: NSURLSessionUploadTask
– Tareas para la descarga de datos: NSURLSessionDownloadTask

Gracias a este nuevo servicio es posible encolar tareas de transferencia que van a continuar su flujo natural aun cuando la aplicación se haya suspendido.

Esta mejora es muy sustanciosa y permite a las aplicaciones iOS expandirse para realizar operaciones en Background. Sin embargo, es conveniente controlar las tareas que la aplicación realiza en segundo plano con el fin de evitar problemas con el consumo de la batería del dispositivo.

¿Te atreves a mejorar tu aplicación usando NSURLSession? Aquí tienes algunos artículos donde puedes encontrar información más detallada sobre todo lo que NSURLSession implica y algunos tutoriales:

Principales novedades de ios7 con respecto a NSURLSession.
Introducción a NSURLSession.

En próximos artículos profundizaremos en lo que ha supuesto el uso de background en alguna de nuestras aplicaciones.

Deja un comentario

¿Necesitas una estimación?

Calcula ahora

Centro de preferencias de privacidad

Cookies propias

__unam, gdpr 1P_JAR, DV, NID, _icl_current_language

Cookies de analítica

Estas cookies nos ayudan a comprender cómo los usuarios interactúan con nuestra página web.

_ga, _gat_UA-42883984-1, _gid, _hjIncludedInSample,

Cookies de suscripción

Estas cookies se utilizan para ejecutar funciones de la Web, como no mostrar el banner publicitario y / o recordar la configuración del usuario dentro de la sesión.

tl_3832_3832_2 tl_5886_5886_12 tve_leads_unique

Otra