I'm planning to implement multi-task in my app.
I can see many methods here to do that in the AppDelegate
like applicationWillResignActive
, applicationDidEnterBackground
, applicationWillEnterForeground
, ...
But.... I don't see the way they should be used, nor why they are not in the ViewControllers... Nor what they are here for.
I mean : when the app enter in background, i don't know on which view my user is. And back, when the app comes into foreground, how would I know what to do and what I may call, to update the view for example ?
I would have understood if those methods where in each view controller, but here, I don't see what they can be used for in a concrete way...
Can you help me to understand the way to implement things into those methods ?
They are not in any of your view controllers because iOS adopts a 'delegate' design pattern, where you can be assured that a method will fire upon a class (in this case, the App Delegate for your application) when required.
As a learning process, why don't you just put NSLog's in those methods to see when they're fired?
Each object receive a
UIApplicationDidEnterBackgroundNotification
notification when the app goes in background. So to run some code when the app goes in background, you just have to listen to that notification where you want :Don't forget to release the listener when you don't need to listen to it anymore :
And best of the best, you can play the same way with the following notifications :
UIApplicationDidEnterBackgroundNotification
UIApplicationWillEnterForegroundNotification
UIApplicationWillResignActiveNotification
UIApplicationDidBecomeActiveNotification