了解applicationSignificantTimeChange:

我发现有时我的应用程序(Cocos2d游戏)会在重大时间变化之后以“越野车”的方式进行攻击。 例如:

  • 情况1:当应用程序进入后台,几分钟后,我重新启动它,我可以看到加载的图像 ,然后应用程序/游戏恢复。
  • 情况2:当应用程序进入后台并且在大量时间改变之后,应用程序有时会重新启动,有时不会。 我还不清楚为什么。

看着AppDelegate方法,我发现:

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

我想知道, 因为这影响了导演和导演影响animation,这个调用与案例1和案例2之间是否有联系?

这与cocos2D或applicationSignificantTimeChange:无关applicationSignificantTimeChange:

值得注意的是对于applicationSignificantTimeChange:

这个方法在一天变化的时候被调用,或者由于任何原因(例如时区的变化)在后台改变了设备的时间。
[资源]

我假设你提到的“重大时间变化”就是你离开游戏一段时间(即超过几分钟)。 在这种情况下,最有可能的是您观察到操作系统多任务处理程序在设备内存不足时会杀死后台进程 ,导致您的应用程序按照情况2中的描述重新启动。

在应用程序没有重启的情况下,操作系统并没有杀死你的进程。