UIApplicationDidEnterBackgroundNotification

Какая польза от UIApplicationDidEnterBackgroundNotification в приложении для iPhone или как извлечь из него выгоду

2 ответа

Это уведомление означает, что пользователь "закрывает" ваше приложение на iPhone 4. Это происходит, когда поступает телефонный звонок или текстовое сообщение, и пользователь принимает прерывание (ответы / ответы) или когда пользователь нажимает кнопку "Домой".

Я нашел эту ссылку в SO, которая показывает взаимодействие между всеми государствами и соответствующие уведомления: http://www.drobnik.com/touch/2010/07/understanding-ios-4-backgrounding-and-delegate-messaging/

Чтобы использовать это уведомление, вы можете реализовать applicationDidEnterBackground, как предложено @Antwan (в вашем классе UIApplicationDelegate - это основной класс).

В качестве альтернативы вы можете установить обработчик уведомлений, где вы хотите / нуждаетесь в своем коде:

[[NSNotificationCenter defaultCenter] addObserver: self
                                         selector: @selector(handleEnteredBackground:) 
                                             name: UIApplicationDidEnterBackgroundNotification
                                           object: nil];

Удачи!

Одед.

Из яблочной документации.

Сообщает делегату, что приложение теперь находится в фоновом режиме.

- (void)applicationDidEnterBackground:(UIApplication *)application

Параметры application Экземпляр единственного приложения.

Обсуждение В iOS 4.0 и более поздних версиях этот метод вызывается вместо applicationWillTerminate: метод, когда пользователь выходит из приложения, поддерживающего фоновое выполнение. Этот метод следует использовать для освобождения общих ресурсов, сохранения пользовательских данных, аннулирования таймеров и сохранения достаточного количества информации о состоянии приложения, чтобы восстановить приложение в его текущем состоянии на случай, если оно будет прекращено позднее. Вам также следует отключить обновления пользовательского интерфейса вашего приложения и избегать использования некоторых типов общих системных ресурсов (например, базы данных контактов пользователя). Также необходимо избегать использования OpenGL ES в фоновом режиме.

Ваша реализация этого метода имеет примерно пять секунд для выполнения любых задач и возврата. Если вам нужно дополнительное время для выполнения каких-либо окончательных задач, вы можете запросить дополнительное время выполнения у системы, позвонив beginBackgroundTaskWithExpirationHandler:, На практике вы должны вернуться из applicationDidEnterBackground: как можно быстрее. Если метод не возвращается до истечения времени, ваше приложение завершается и удаляется из памяти.

Вы должны выполнить любые задачи, связанные с настройкой пользовательского интерфейса, до выхода из этого метода, но другие задачи (например, сохранение состояния) следует переместить в параллельную очередь отправки или вторичный поток по мере необходимости. Потому что это, скорее всего, любые фоновые задачи applicationDidEnterBackground: не будет работать до тех пор, пока этот метод не завершится, вам следует запросить дополнительное время фонового выполнения перед запуском этих задач. Другими словами, первый звонок beginBackgroundTaskWithExpirationHandler: и затем запустите задачу в очереди отгрузки или вторичном потоке.

Приложение также публикует UIApplicationDidEnterBackgroundNotification Примерно в то же время уведомление вызывает этот метод, чтобы дать заинтересованным объектам возможность ответить на переход.

Другие вопросы по тегам