Чтобы устранить путаницу, я просто провел несколько тестов на устройстве с iOS 4.3.2:
Когда вы запускаете приложение, оно отправляется:
применение: didFinishLaunchingWithOptions:
applicationDidBecomeActive:
Когда вы нажимаете кнопку «Домой», ваше приложение отправляется:
applicationWillResignActive:
applicationDidEnterBackground:
При повторном запуске этого же приложения ваше приложение отправляется:
applicationWillEnterForeground:
applicationDidBecomeActive:
Когда вы нажимаете кнопку блокировки, ваше приложение отправляется:
applicationWillResignActive:
Когда вы разблокируете, ваше приложение будет отправлено:
applicationDidBecomeActive:
Когда вы получаете звонок, ваше приложение получает:
applicationWillResignActive:
Если вы не ответите на этот вызов, ваше приложение будет отправлено:
applicationDidBecomeActive:
Когда вы получаете звонок, ваше приложение получает:
applicationWillResignActive:
Если вы ответите на этот вызов, ваше приложение будет отправлено:
applicationDidEnterBackground:
Когда вы вешаете трубку, ваше приложение отправляется:
applicationWillEnterForeground:
applicationDidBecomeActive:
Я бы сказал, когда вы получите applicationWillResignActive
: тогда вы должны выйти из системы, де-аутентифицироваться, заблокировать или отбросить вашу конфиденциальную информацию, а когда вы получите applicationDidBecomeActive:
, затем повторно аутентифицироваться. Это вызывается при запуске, возвращении из фона и разблокировке устройства.
Кроме того, эти два метода могут быть вам интересны, но на самом деле они не помогают конкретному случаю, который вас интересует:
- (void)applicationProtectedDataWillBecomeUnavailable:(UIApplication *)application
- (void)applicationProtectedDataDidBecomeAvailable:(UIApplication *)application