Comprensión de la aplicación SignificantTimeChange:

Me parece que a veces mi aplicación (juego de Cocos2d) se comporta de forma "buggy" después de un cambio de time significativo. Por ejemplo:

  • Caso 1: cuando la aplicación entra en segundo plano y, después de varios minutos, la reinicio, puedo ver la image de carga y luego se reanuda la aplicación / juego.
  • Caso 2: cuando la aplicación entra en segundo plano y después de un time considerable, la aplicación a veces se reinicia, a veces no. Todavía no está claro por qué.

Mirando los methods de AppDelegate encontré:

// next delta time will be zero -(void) applicationSignificantTimeChange:(UIApplication *)application { [[CCDirector shanetworkingDirector] setNextDeltaTimeZero:YES]; } 

Me preguntaba, ya que esto afecta al director y el director afecta las animaciones, ¿hay un enlace entre esta llamada y el caso 1 y el caso 2?

Esto no tiene nada que ver con cocos2D o applicationSignificantTimeChange:

En particular para applicationSignificantTimeChange:

Este método se invoca cuando el día cambia, o si el time del dispositivo se ha cambiado en segundo plano por alguna razón (como los cambios en la zona horaria).
[Fuente]

Estoy asumiendo que el "cambio significativo de time" que menciona es justo cuando deja el juego por un time (es decir, más de unos pocos minutos). En este caso, es muy probable que esté observando el hecho de que el manejador multitarea del sistema operativo mata los processs en segundo plano cuando el dispositivo se está quedando sin memory , provocando que su aplicación se reinicie como describió en el caso 2.

En los casos en que la aplicación no se ha reiniciado, es solo el caso que el sistema operativo no haya eliminado su process.