iPhone: нужно ли моему приложению поддерживать многозадачность?

Это теперь обязательное требование перед загрузкой в ​​магазин приложений? Насколько я понимаю, сделать мое приложение совместимым с многозадачностью — это что-то дополнительное, что мне нужно реализовать. (?)


person Shai UI    schedule 05.10.2010    source источник


Ответы (3)


Не обязательно поддерживать многозадачность.

Чтобы отключить многозадачность, вы можете использовать ключ UIApplicationExitsOnSuspend в файле info.plist, который может отображаться как «Приложение не работает в фоновом режиме».

См. http://developer.apple.com/library/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html для получения дополнительной информации.

person Greg    schedule 05.10.2010

No.

Это не что-то лишнее. Это процесс отказа. Прочтите этот документ Apple.

Мое личное мнение таково, что если вы активно не поддерживаете многозадачность, вам следует отказаться от нее.

person Yuji    schedule 05.10.2010
comment
Как бы то ни было, на мой взгляд, вы должны поддерживать быстрое переключение приложений, даже если вы не поддерживаете ничего другого. По мере того, как пользователи привыкают переключаться на недавно запущенные приложения с быстрым переключением, это будет казаться странным и менее функциональным, если вашего там нет, и пользователю придется снова искать его в спрингборде. - person Matthew Frederick; 05.10.2010
comment
Это не так. Вы можете проверить сами, но программа добавляется в недавно запущенное приложение независимо от того, поддерживает ли оно многозадачность. Это не список приложений, работающих в фоновом режиме. Поскольку приложение запускается достаточно быстро, вы не видите разницы. Конечно, Apple не будет делать такое искусственное различие :) - person Yuji; 05.10.2010

Вашему приложению не нужно использовать преимущества многозадачности, но оно ДОЛЖНО изящно справляться с переводом в фоновый режим и никогда не получать уведомление о завершении работы приложения. Более конкретно:

В предыдущих версиях ОС, когда пользователь выходит из приложения (нажав кнопку «Домой»), делегат приложения

applicationWillTerminate

назывался. В iOS 4 нажатие кнопки «Домой» вместо этого переводит приложение в фоновый режим, вызывая делегата приложения.

applicationDidEnterBackground

Когда приложение снова выводится на передний план, ОС вызывает функцию делегата приложения.

applicationWillEnterForeground

Это чаще всего вызывало проблемы для старых приложений, когда изменения состояния — пользовательские настройки, файлы данных, рекорды и т. д. — записывались и сохранялись при вызове applicationWillTerminate. Теперь, когда он больше не вызывается, некоторые приложения не могут сохранить информацию о пользователе.

Почти все, что вы делали при вызове applicationWillTerminate, теперь также должно быть помещено в applicationDidEnterBackground, в зависимости от того, что делает ваше приложение.

Кроме того, возможно, что некоторые действия, которые вы выполняли в application didFinishLaunchingWithOptions, также необходимо будет выполнить в applicationWillEnterForeground, в зависимости от того, что делает ваше приложение.

person Matthew Frederick    schedule 05.10.2010