iPhone Как запретить моему приложению входить в фоновый режим при блокировке экрана? - PullRequest
0 голосов
/ 27 декабря 2011

Когда нажмете кнопку блокировки в приложении, система вызовет:

-(void) applicationWillResignActive:(UIApplication *)application and
-(void) applicationDidEnterBackground:(UIApplication *)application

Так как мне сделать так, чтобы мое приложение только активировало, но не входило в фон, и я могу запустить таймер, когда экран заблокирован (Таймер не может быть запущен в фоновом режиме).

Один метод устанавливает для свойства «Приложение не запускается в фоновом режиме» в .plist значение YES, это сработало, но мое приложение больше никогда не может войти в фон, однако яхотите, он войдет в фон при нажатии кнопки домой.

Обновление: Я хочу воспроизводить музыку в моем приложении в определенное время, точно так же, как музыкальный будильник, и я все еще хочу, чтобы она работала нормально, когда экран заблокирован, потому что держите экранможет привести к разрядке аккумулятора, и мне не нужно ничего делать, когда пользователь нажимает кнопку «Домой» и выходит из приложения.

Ответы [ 4 ]

1 голос
/ 27 февраля 2013

Откройте ваш файл Info.plist и добавьте приложение не работает в фоновом режиме.Установите значение YES.

0 голосов
/ 27 декабря 2011

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

Вы можете выполнять фоновые задачи с помощью [UIApplication beginBackgroundTaskWithExpirationHandler;] (см. ссылка ). Если вы хотите, чтобы что-то происходило после определенного интервала, посмотрите [UIApplication scheduleLocalNotification:].

Некоторые службы, такие как VOIP, Audio и CoreLocation, могут работать в фоновом режиме. Использование их не по назначению (например, воспроизведение тихого звука) может привести к отклонению вашего приложения.

Обратите внимание, что вы ничего не можете сделать, чтобы приложение не входило в фоновый режим. Просто некоторые задачи могут выполняться в фоновом режиме. Из-за этого вы не можете выполнять операции с графическим интерфейсом, и NSTimers, вероятно, не будут запускаться (по крайней мере, я знаю некоторые случаи, когда они не работают).

Это поможет узнать, что вы хотите запустить в фоновом режиме, чтобы предложить решение.

0 голосов
/ 28 декабря 2011

Если вы не воспроизводите аудио, ДО перехода к фону вы не сможете начать воспроизведение аудио, когда приложение перемещено в фоновый режим или экран заблокирован (что имеет некоторые странные особенности), достаточно сказать, что это как если бы вы были в фоновом режиме без фактического получения уведомления applicationDidEnterBackground.

Лучшее, что вы можете сделать, - это запланировать локальное уведомление, но в этом случае ваша музыка ограничена 30 секундами и должна входить в комплект вашего приложения.

0 голосов
/ 27 декабря 2011

Приложение должно иметь специальные привилегии для выполнения любой обработки в фоновом режиме, например, аудиослужба / служба VoIP / служба определения местоположения.

"Я могу запустить свой таймер, когда экран заблокирован (таймер не может выполняться в фоновом режиме)«Вы не можете запустить таймер в фоновом режиме, который будет продолжать работать без какой-либо тентрума и при этом ... Apple не примет ваше приложение в магазине приложений - это худшая сторона, если вы ориентируетесь на магазин приложений ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...