Нормально ли, чтобы другое приложение могло выйти из моего приложения?
Я реализую поддержку JACK ( http://www.crudebyte.com/jack-ios/) в моем приложении ( http://audulus.com/ если вам интересно).
Приложение JACK имеет пользовательский интерфейс для выхода из других приложений (таких как мое), которые к нему подключены. Когда я получаю уведомление от JACK, я должен выйти из приложения программным способом.
Должен ли JACK вместо этого иметь интерфейс для отключения приложения, а не выхода из него?
Релевантная информация:
http://developer.apple.com/library/ios/
http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/Introduction/Introduction.html см. "Не выходите программно"
2 ответа
abort()
не является строго незаконным: рецензенты Apple сканируют ваш код на наличие запрещенных вызовов API и abort()
не среди них, если говорить по опыту. Также рассмотрите язык QA, на который вы ссылаетесь: он говорит только о "обескураживающем" и "рекомендующем" против использования exit()
а также abort()
,
В этом отношении, что QA и HIG, кажется, предполагают, что использование exit()
/abort()
было бы неправильно, если бы это приводило к плохому пользовательскому опыту: "поставьте пользователей под контроль", говорит HIG. Но если JACK действительно представляет пользовательский интерфейс, который четко объясняет, что ваше приложение будет закрыто, и пользователь решит закрыть ваше приложение на основе этого пользовательского интерфейса, вы фактически сохраняете контроль, программно выходя из приложения.
Тем не менее, я не думаю, что это много пользы для пользователя. Если вы просто отключитесь, ресурсы вашего приложения все равно будут восстановлены, если это необходимо - но если ваше приложение не будет прервано, оно запустится быстрее в следующий раз, когда пользователь запустит его. Рискну предположить, что отключение удовлетворит внешний вид в JACK, и пользователь должен будет проверить панель переключателя приложений, чтобы увидеть, завершился ли он.
Нет, не правильно выходить из приложения программно. Документы Apple довольно понятны: