Как определить, что вызвало приложение WillResignActive? - PullRequest
7 голосов
/ 21 июля 2011

У меня есть приложение видеочата, которое я хочу отключить от вызова, когда устройство заблокировано, но оставаться на связи, когда получено SMS, календарь, низкий заряд батареи или любой другой тип уведомлений. Проблема в том, что я не могу понять, как определить причину вызова селектора applicationWillResignActive моего делегата приложения.

Я думал о реализации некоторого тайм-аута, когда если applicationDidBecomeActive не был вызван в течение определенного количества секунд, я бы отключился, но это ложно предполагает, что пользователь будет игнорировать или принимать полученное уведомление в течение этого количества секунд.

Может кто-нибудь помочь мне найти способ определить причину вызова селектора applicationWillResignActive?

Большое спасибо, Мейсон

Ответы [ 2 ]

5 голосов
/ 21 июля 2011

Я думаю, что короткий ответ может состоять в том, что вы не можете точно определить, что является причиной вызова в отставку, однако вы можете планировать только в зависимости от того, идет ли он в фоновом режиме или нет.

Проверьте этоопишите, где подробно описываются шаги, выполняемые многозадачностью.

http://www.cocoanetics.com/2010/07/understanding-ios-4-backgrounding-and-delegate-messaging/

Удачи, ты выглядишь потрясающим парнем!

0 голосов
/ 25 октября 2016

В моем случае я остановил захват видео на NSNotification.Name.UIApplicationWillResignActive

Теперь я использую: NSNotification.Name.UIApplicationDidEnterBackground

Не срабатывает, когда приходит сообщение или когда кто-то звонит на устройство захвата.

...