iPhone app running Simulator 4.0 received Sigkill

NickDK picture NickDK · Jun 23, 2010 · Viewed 9.1k times · Source

I just got the iPhone SDK 4 and I'm trying to leave off developing an app I was working on before. So I implemented both -(void)applicationDidEnterBackground:(UIApplication *)application and - (void)applicationWillTerminate:(UIApplication *)application

When I click the home button in the simulator 4.0, it seems to work okay. The app calls -(void)applicationDidEnterBackground:(UIApplication *)application and enters the background state..

However, I then double click the home button to expose the app running in the background, and hold it down to show the minus sign in or to exit. When I click the minus sign, the debugger says

Program received signal: "SIGKILL"

in addition, - (void)applicationWillTerminate:(UIApplication *)application is never called. Am I missing something I need to do for this to work on OS4? Or at least can somebody point me to a way to debug SIGKILL. Thanks.

Answer

Jason Coco picture Jason Coco · Jun 23, 2010

-applicationWillTerminate: is only called if your application is in a running state when it is asked to quit. If it is already in a suspended state (as you have it here), the system simply sends a kill signal to the application. This happens when the user presses the red minus buttons to terminate the app manually as well as when the system decides to jettison the app to free up memory for the foreground application.

If you application is running in the background (playing music or running some background tasks, for instance) and the user manually terminates the application by pressing the minus button, only then will you actually get an -applicationWillTerminate: message. Therefore, you must save all your state/etc. before you return from -applicationDidEnterBackground:.