спящий режим против открытия центра уведомлений

в обоих случаях 1) iPhone переходит в спящий режим 2) Открыть Центр уведомлений

Он звонит

- (void)applicationWillResignActive:(UIApplication *)application

Есть ли способ определить, вызван ли этот метод, потому что устройство перешло в спящий режим или открыв центр уведомлений?


person objectivecdeveloper    schedule 30.01.2012    source источник
comment
Почему вы хотите разделить эти два поведения? Расскажите подробнее о своих требованиях, возможно, у нас есть другие решения вашей реальной проблемы.   -  person Tonny Xu    schedule 03.02.2012
comment
На самом деле я должен снова загрузить экран входа в систему, когда устройство переходит в режим блокировки. И любым другим способом приложение переходит в фоновый режим, после чего ничего не нужно делать.   -  person objectivecdeveloper    schedule 04.02.2012


Ответы (2)


Есть несколько хаков для обнаружения блокировки/разблокировки, но ничего официального, что могло бы не порвать с будущим выпуском iOS.

person Eric    schedule 01.02.2012

ОК, когда вы блокируете экран/iPhone переходит в спящий режим, самое переднее приложение (ваше приложение) переходит в фоновый режим, а когда вы открываете Центр уведомлений , ваше приложение на самом деле не переводится в фоновый режим.

Итак, вы можете использовать

- (void)applicationWillEnterForeground:(UIApplication *)application

or

- (void)applicationDidEnterBackground:(UIApplication *)application

чтобы установить значение, например bgFlag, в классе делегата вашего приложения,

затем, когда вызывается - (void)applicationDidBecomeActive:(UIApplication *)application, вы проверяете, установлено ли bgFlag или нет.

Удачи.

person Tonny Xu    schedule 06.02.2012