No confunda Suspended con Not Running. Suspendido significa que la aplicación aún está en la memoria pero que, por lo demás, no utiliza ningún recurso. No se está ejecutando significa que la aplicación no está en la memoria debido a que se terminó de manera involuntaria, ya sea porque el sistema requirió recursos para una aplicación en primer plano o porque el usuario forzó el cierre de la aplicación.
Actualización de la aplicación de fondo (BAR) = /="Fondo" como se muestra en ese diagrama:
-
BAR permite que las aplicaciones actualicen el contenido de forma muy limitada, en un horario establecido y ejecutado por iOS, generalmente una vez al día.
-
El estado de Fondo que se muestra en ese diagrama es Ejecución en segundo plano, que permite a las aplicaciones completar ciertas tareas en segundo plano. La desactivación de BAR no tiene efecto en que las aplicaciones puedan usar la Ejecución en segundo plano.
La ejecución en segundo plano generalmente solo se permite si el usuario no ha forzado el cierre de una aplicación (la excepción es "aplicaciones de ubicación"). Las aplicaciones en cualquier estado, incluidas las finalizadas, pueden usar la ejecución en segundo plano si cumplen con los requisitos a continuación. Si es necesario, el sistema los relanzará a un segundo plano (nuevamente, sujeto a las limitaciones de forzar y salir arriba). Consulte mi respuesta en una pregunta similar :
- aplicaciones que reproducen contenido audible para el usuario mientras se encuentra en segundo plano, como una aplicación de reproductor de música
- aplicaciones que graban el contenido de audio mientras está en segundo plano
- aplicaciones que mantienen a los usuarios informados de su ubicación en todo momento, como una aplicación de navegación
- Aplicaciones que admiten el protocolo de voz sobre Internet (VoIP)
- Aplicaciones que necesitan descargar y procesar contenido nuevo con regularidad
- aplicaciones que reciben actualizaciones periódicas de accesorios externos
Hay otro caso, que se está descargando en segundo plano. Sin embargo, este es un caso especial, ya que la aplicación en sí aún está suspendida y el proceso de descarga se transfiere al sistema, en caso de que el sistema tenga que finalizar la aplicación para reclamar recursos.
Lo que no está en la respuesta vinculada son las notificaciones. Las notificaciones no locales se generan en un servidor en algún lugar y se envían al dispositivo a través de notificaciones push de Apple (APN). El hecho de recibir una notificación no indica que la aplicación haya hecho nada.
En su ejemplo de nota, cuando la aplicación de notas pasa al fondo, se le da una breve cantidad de tiempo para guardar el estado. Si está en el proceso de hacer algo como guardar una nota y no puede completarla en el tiempo permitido, puede solicitar una extensión, esencialmente, y luego notificar al sistema cuando esté listo para que la aplicación pueda suspenderse. Este tipo de trabajo de fondo puede ser utilizado por cualquier aplicación, no solo por aquellas que se incluyen en las categorías enumeradas anteriormente.