When waking up i.e. relaunching an app (either through springboard, app switching or URL)
applicationWillEnterForeground: is called. It is only executed once when the app becomes ready for use, after being put into the background, while applicationDidBecomeActive: may be called multiple times after launch. This makes applicationWillEnterForeground: ideal for setup that needs to occur just once after relaunch.applicationWillEnterForeground: is called:- when app is relaunched
- before
applicationDidBecomeActive:
applicationDidBecomeActive: is called:- when app is first launched after
application:didFinishLaunchingWithOptions: - after
applicationWillEnterForeground:if there's no URL to handle. - after
application:handleOpenURL:is called. - after
applicationWillResignActive:if user ignores interruption like a phone call or SMS.
applicationWillResignActive: is called:- when there is an interruption like a phone call.
- if user takes call
applicationDidEnterBackground:is called. - if user ignores call
applicationDidBecomeActive:is called.
- if user takes call
- when the home button is pressed or user switches apps.
- docs say you should
- pause ongoing tasks
- disable timers
- pause a game
- reduce OpenGL frame rates
applicationDidEnterBackground: is called:- after
applicationWillResignActive: - docs say you should:
- release shared resources
- save user data
- invalidate timers
- save app state so you can restore it if app is terminated.
- disable UI updates
- you have 5 seconds to do what you need to and return the method
- if you dont return within ~5 seconds the app is terminated.
- you can ask for more time with
beginBackgroundTaskWithExpirationHandler:
- (void)applicationWillEnterForeground:(UIApplication *)application
{
[[CCDirector sharedDirector] resume];
[[CCDirector sharedDirector] startAnimation];
}
- (void) applicationDidEnterBackground:(UIApplication *)application
{
[[CCDirector sharedDirector] stopAnimation];
[[CCDirector sharedDirector] pause];
}
- (void)applicationWillResignActive:(UIApplication *)application {
[[CCDirector sharedDirector] stopAnimation];
[[CCDirector sharedDirector] pause];
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
[[CCDirector sharedDirector] stopAnimation]; // Avoid 2 Display Link Crash ***
[[CCDirector sharedDirector] resume];
[[CCDirector sharedDirector] startAnimation];
}
Sources:
No comments:
Post a Comment