Есть ли способ всегда использовать default.png при возврате из фона?
В одном из моих приложений при возврате из фона я получаю непоследовательное поведение: иногда я получаю default.png, а иногда получаю снимок последнего экрана, на котором было приложение. В обоих случаях пользовательский интерфейс занимает хорошую секунду или два, чтобы ответить снова. Поэтому я предпочел бы показать default.png, а не "не отвечающий пользовательский интерфейс"
Есть ли способ заставить приложение отображать default.png всегда, пока приложение снова не станет активным?
В настоящее время "глупый" способ сделать это, о котором я подумал, это отобразить некоторое модальное представление с default.png и удалить его по возвращении на передний план.
Немного разъяснений:
Я делаю это, чтобы избежать неотзывчивого интерфейса.
Я использую default.png, так как он выглядит как загрузка и дает лучший опыт, чем не отвечающий пользовательский интерфейс
Приложение должно работать в фоновом режиме.
(И тому, кто спросил - нет, он не закрывается, когда я иногда возвращаюсь и вижу default.png, а не последнее состояние пользовательского интерфейса - загрузка приложения с самого начала имеет совершенно иной путь, и я уверен в этом)
Заранее спасибо.
4 ответа
Для будущих людей, заинтересованных в этом, вы можете использовать тот факт, что последнее представление в приложении используется для отображения при загрузке приложения. Вы можете отобразить VC как ваш переход к фону, который будет представлять некоторую нагрузку - следовательно, достигая желаемого поведения.
Я уже видел несколько других приложений, использующих такое же поведение в тех случаях, когда выполняются операции при возвращении в приложение.
Скорее всего, вы занимаетесь слишком долго (выполняя слишком много вычислений) в таких методах, как applicationWillEnterForeground:
, applicationDidBecomeActive:
и т. д. В качестве простого теста попробуйте закомментировать код в этих методах и посмотрите, не возникнет ли проблема снова.
Это неправильное поведение, и вы можете столкнуться с ошибкой. В основном, пока ваше приложение находится в фоновом режиме, при запуске вы не должны видеть default.png, если только вы не удалите его из фона (дважды щелкните кнопку "Домой" и удалите это приложение).
Просто установите в своем Info.plist свойство "Приложение не запускается в фоновом режиме", чтобы ДА. Приложение никогда не будет работать в фоновом режиме, и при нажатии кнопки "Домой" оно будет просто остановлено. Итак, вы вернулись к поведению до iOS4.
Обратите внимание, что когда вы видите теперь изображение по умолчанию при запуске, это просто потому, что ваше приложение было прервано, когда оно было в фоновом режиме. Это нормально, особенно для приложений, которые занимают много памяти, а затем не освобождают ее достаточно, прежде чем перейти в фоновый режим (я думаю, что порог для ОС составляет около 18 МБ, но я не уверен)