2010-10-29 27 views

回答

3

根据“关闭”的类型,有几个回调被发送到应用程序委托。

- (void)applicationWillResignActive:(UIApplication *)application; 

当应用程序即将从活动状态转移到非活动状态时发送。对于某些类型的临时中断(例如来电或SMS消息)或用户退出应用程序并开始转换到后台状态时,可能会发生这种情况。 使用此方法可暂停正在进行的任务,禁用定时器并降低OpenGL ES帧速率。游戏应该使用这种方法来暂停游戏。

- (void)applicationDidEnterBackground:(UIApplication *)application; 

使用此方法来释放共享资源,保存用户数据,无效定时器和储存足够的应用程序状态信息到您的应用程序恢复到其当前状态中它以后终止情况。 如果您的应用程序支持后台执行,则调用而不是applicationWillTerminate:当用户退出时。

- (void)applicationWillTerminate:(UIApplication *)application; 

当应用程序即将终止时调用。

+1

附加说明 - 如果您需要通过appDelegate以外的其他方式收到警报,则可以在NSNotificationCenter中注册这些内容 – joebonniwell 2010-10-29 02:30:59

0

applicationWillResignActive委托是在应用程序关闭之前保存数据的好地方,但可能会在应用程序仅暂时中断或存储在后台进行不确定的时间段时调用。

在iOS 4.0和更高版本中,即使应用程序即将在后台被杀死,applicationWillTerminate也不会被调用。所以它只对一些额外的iOS 3.x支持有用。

相关问题