Appendix A. Application Lifetime Events
When your app launches, the
UIApplicationMain function creates its one and only UIApplication instance as the
shared application object, along with the app delegate, adopting the UIApplicationDelegate protocol (see “How an App Launches”). The application then proceeds to report lifetime events to its delegate through calls to protocol-defined methods; other objects can also register to receive most of these events as notifications.
These fundamental events, notifying you of stages in the lifetime of your app as a whole and giving your code an opportunity to run in response, are extraordinarily important. This appendix is devoted to a survey of them, along with some typical scenarios in which they will arrive.
In the early days of iOS — before iOS 4 — the lifetime of an app was extremely simple: either it was running or it wasn’t. The user tapped your app’s icon in the home screen, and your app was launched and began to run. The user used your app for a while. Eventually, the user pressed the Home button (the physical button next to the screen) and your app was terminated — it was no longer running. The user had quit your app. Launch, run, quit: that was the entire life cycle of an app. If the user decided to use your app again, the whole cycle started over.
The reason for this simplicity was that, before iOS 4, an iOS device, with its slow processor and its almost brutal paucity of memory and other resources, compensated ...