objective-c - usar - wunderlist app web
¿Qué sucede con las tareas en las colas de despacho cuando una aplicación entra en estado inactivo/de fondo/suspendido en iOS? (1)
Cuando una aplicación se suspende, todo el proceso se congela. Puede contar con que el proceso se reanude como si nada hubiera pasado una vez que se reanudara. Las colas lógicas de GCD de sus aplicaciones no desaparecen, permanecen como estaban en la memoria. Y los subprocesos que GCD ha creado en su proceso para atender sus colas se reanudan en su lugar como si nada hubiera pasado también.
Por lo tanto, su interpretación es incorrecta: las tareas existentes en las colas de GCD antes de la suspensión no desaparecen al reanudarse. Nunca se fueron; Sólo se detuvieron.
He estado revisando la documentación de Apple sobre los estados de las aplicaciones y Grand Central Dispatch, pero no he encontrado una buena respuesta a esta pregunta.
Según la documentación de Apple, en iOS 4.0:
La aplicación está en segundo plano pero no está ejecutando código. El sistema mueve una aplicación a este estado automáticamente y en los momentos apropiados. Mientras está suspendida, una aplicación se liofiliza esencialmente en su estado actual y no ejecuta ningún código. En condiciones de poca memoria, el sistema puede purgar las aplicaciones suspendidas sin previo aviso para hacer más espacio para la aplicación de primer plano.
Entonces, asumiendo que el sistema no purga una aplicación suspendida (suspendida -> no se está ejecutando la transición), ¿qué sucede con las tareas que se están ejecutando actualmente en una cola de envío? La frase "Esencialmente liofilizado" deja mucho que desear: ¿ exactamente qué se liofiliza?
Mi interpretación es cualquiera de las colas de GCD que una aplicación esté utilizando en el momento de la suspensión y deberá ser restablecida cuando la aplicación vuelva a su estado activo; Bajo esta interpretación, las tareas existentes en las colas de GCD antes de la suspensión desaparecerían. ¿Es mi interpretación correcta?