События NSTimer не происходят, когда экран заблокирован на iOS 5 - PullRequest
0 голосов
/ 20 ноября 2011

Я видел, как это появлялось несколько раз, но я не видел однозначного ответа ...

Начиная с iOS 5, мое приложение сталкивается с проблемой, что если пользователь блокирует экранмой NSTimer перестает срабатывать примерно через 20 секунд на экране блокировки.Это делает мое приложение, воспроизводящее звук каждый раз, когда таймер срабатывает, бессмысленно, если пользователь блокирует экран.

Это произошло только после того, как я обновил свое устройство до iOS 5.

Мой вопрос заключается в том, что1. Есть ли обходной путь для работы этой же функции на обновленных устройствах или 2. Каков рекомендуемый подход, чтобы не получать плохие отзывы, если ваше приложение не работает в заблокированном виде.

Ответы [ 2 ]

1 голос
/ 27 июля 2012

В iOS5 Apple представила больше режимов фоновой задачи, включая «аудио», «местоположение», «voip», «newsstand-content», «external-accessory» и «bluetooth-central». Я думаю, вы можете определить, какой режим вы можете использовать в своем приложении. Ссылка http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW24

1 голос
/ 20 ноября 2011

Когда пользователь блокирует экран, приложение переходит в «неактивное» состояние .Это похоже на добавление вашего приложения в фоновый режим.Документация Apple гласит: «Приложение работает на переднем плане, но в настоящее время не получает события. (Возможно, он выполняет другой код.») *

Однако после перехода в неактивное состояние iPhone полностью переходит в спящий режим,если что-то не работает, чтобы сохранить его активным ... ожидание запуска NSTimer, по-видимому, не удовлетворяет этому критерию. В этом предыдущем вопросе есть обсуждение. По-видимому, одним из решений является воспроизведение вашего звука при срабатывании таймера, а между тем непрерывное воспроизведение тихого звука, чтобыпредотвратить iPhone от сна.Хак, но, по крайней мере, в этом случае не совсем уродливый хак, поскольку использование звука для того, чтобы iPhone оставался активным для воспроизведения звука, имеет вид симметрии.

Ранее связанный контент :
Из Руководства Apple по реализации длительных фоновых задач :

Воспроизведение фонового звука
Приложение, которое непрерывно воспроизводит звук(даже когда приложение работает в фоновом режиме) можно зарегистрировать приложение фонового звука, включив ключ UIBackgroundModes (со значением audio) в свой файл Info.plist.Приложения, содержащие этот ключ, должны воспроизводить звуковой контент для пользователя в фоновом режиме.

Реализуете ли вы это в своем приложении?Если нет, то это ваша проблема.

Относительно # 2: Вы можете обновить описание приложения, чтобы указать, что оно не работает с заблокированным экраном, но лучше было бы просто сделать так, чтобы оно работало какпользователь будет ожидать.:)

...