iPhone возвращается к черному экрану после прерывания сна во время заставки

У меня происходит странная ошибка, которая, по-видимому, связана с ОС: если я прерываю сон своего устройства, когда отображается экран-заставка, управляемый ОС, Default.png, а затем сразу же пробуждаю устройство, я получаю черный screen до тех пор, пока не будет вызван applicationDidFinishLaunching: и ОС не передаст управление моему приложению.

Было бы неплохо, если бы после пробуждения устройства Default.png по-прежнему отображался правильно. Я ввел несколько журналов, чтобы увидеть, когда вызываются обработчики прерываний (applicationWillResignActive: и т. д.), но они никогда этого не делают - я думаю, что прерывание происходит слишком рано.

Любые идеи о том, как избежать возврата к черному экрану?

Заранее спасибо!


person Ian    schedule 29.11.2011    source источник


Ответы (1)


Вы не можете контролировать, как долго будет отображаться экран-заставка. Файл Default.png будет отображаться во время настройки приложения, но исчезнет, ​​как только приложение будет готово к запуску.

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

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

person Bill Burgess    schedule 29.11.2011
comment
Я думаю, Иан спрашивал не об этом. Представьте, что вы поставили sleep(10); перед вызовом UIApplicationMain(). Вы увидите заставку. Затем вы прерываете свое приложение. Затем вы просыпаетесь и разблокируете экран (sleep(10); еще не вернулся). Я проверил это на iPod; действительно, заставки больше нет... - person debleek63; 29.11.2011
comment
Спасибо, Билл. Режим сна/пробуждения происходит до завершения настройки приложения. Я ожидаю, что ОС увидит, что настройка приложения не завершена, и снова отобразит заставку, но это не так. Он просто сидит на черном экране, пока приложение не завершит настройку, затем мое приложение вступает во владение и продолжает работать так, как должно. То, что вы мне говорите, это то, что это 100% в ОС, и я ничего не могу с этим поделать, во что я бы поверил. Это правильно? - person Ian; 29.11.2011
comment
да. Экран-заставка должен быть только временным заполнителем, пока приложение настраивается. Если это выглядит неправильно или выполняется недостаточно быстро... Я бы создал целевую страницу, чтобы показать пользователю, что вы все еще загружаетесь. Выглядит лучше, чем черный экран. (и черные экраны могут привести к отказу при отправке в App Store) Удачи. - person Bill Burgess; 29.11.2011
comment
Спасибо, и да, я так и делаю — моя точка зрения заключается в том, что если вы прервете сон устройства во время отображения заставки, а затем разбудите устройство, вы получите черный экран, с которым вы ничего не можете сделать, потому что ОС еще не передала управление вашему приложению. Звучит как проблема с ОС для меня. Если у кого-то из читающих есть обходной путь, я бы хотел его услышать :) - person Ian; 29.11.2011