Это теперь обязательное требование перед загрузкой в магазин приложений? Насколько я понимаю, сделать мое приложение совместимым с многозадачностью — это что-то дополнительное, что мне нужно реализовать. (?)
iPhone: нужно ли моему приложению поддерживать многозадачность?
Ответы (3)
Не обязательно поддерживать многозадачность.
Чтобы отключить многозадачность, вы можете использовать ключ UIApplicationExitsOnSuspend в файле info.plist, который может отображаться как «Приложение не работает в фоновом режиме».
См. http://developer.apple.com/library/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html для получения дополнительной информации.
No.
Это не что-то лишнее. Это процесс отказа. Прочтите этот документ Apple.
Мое личное мнение таково, что если вы активно не поддерживаете многозадачность, вам следует отказаться от нее.
Вашему приложению не нужно использовать преимущества многозадачности, но оно ДОЛЖНО изящно справляться с переводом в фоновый режим и никогда не получать уведомление о завершении работы приложения. Более конкретно:
В предыдущих версиях ОС, когда пользователь выходит из приложения (нажав кнопку «Домой»), делегат приложения
applicationWillTerminate
назывался. В iOS 4 нажатие кнопки «Домой» вместо этого переводит приложение в фоновый режим, вызывая делегата приложения.
applicationDidEnterBackground
Когда приложение снова выводится на передний план, ОС вызывает функцию делегата приложения.
applicationWillEnterForeground
Это чаще всего вызывало проблемы для старых приложений, когда изменения состояния — пользовательские настройки, файлы данных, рекорды и т. д. — записывались и сохранялись при вызове applicationWillTerminate. Теперь, когда он больше не вызывается, некоторые приложения не могут сохранить информацию о пользователе.
Почти все, что вы делали при вызове applicationWillTerminate, теперь также должно быть помещено в applicationDidEnterBackground, в зависимости от того, что делает ваше приложение.
Кроме того, возможно, что некоторые действия, которые вы выполняли в application didFinishLaunchingWithOptions, также необходимо будет выполнить в applicationWillEnterForeground, в зависимости от того, что делает ваше приложение.