退出后在11秒内恢复应用程序崩溃(0)

Hap*_*Pig 0 iphone crash core-data multitasking ipad

我有一个应用程序,使用Core Data开始导入数据.在应用程序的这一部分中,我通过在设置标志时调用applicationDidEnterBackground中的exit(0)来禁用恢复(多任务处理).例如:

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

    if (allowResuming==NO){
        NSLog(@"Terminating...");
        exit(0);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我在按下主页按钮后11秒内尝试"恢复"应用程序(通过按下其图标)(因此,已经调用退出(0)),应用程序崩溃.在通过调试器运行时不会发生这种情况,但是崩溃日志表明应用程序正在尝试从中断处继续数据导入,这当然不是我想要的.

在此次崩溃之后(即在一秒钟内)尝试再次"恢复"应用程序是成功的.

如果我试图在11秒后'恢复'应用程序,那很好.

如果有人有任何想法和/或能指出我正确的方向,我将非常感激.

Aks*_*hay 6

我认为你不应该这样做exit(0).要禁用多任务处理,请将UIApplicationExitsOnSuspendInfo.plist中的密钥设置为YES.有关详细信息,请参见选择退出后台执行的,在 http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/CoreApplication/CoreApplication.html#//apple_ref/doc/uid/TP40007072 -CH3-SW1.

要丢弃应用程序离开前台时完成的部分工作,请为其添加一个侦听器UIApplicationWillResignActiveNotification or UIApplicationDidEnterBackgroundNotification.在处理程序方法中,您可以执行以下操作:

[self discardPartialWorkDone];
Run Code Online (Sandbox Code Playgroud)

HTH,

阿克沙伊