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