iPhone: Как правильно оставить заявку? - PullRequest
1 голос
/ 22 августа 2010

Привет всем,

с iOS 4, iPhone поддерживает многозадачность, что очень приятно, но что-то, что я не хочу поддерживать в своем приложении. Я имею в виду, что когда пользователь нажимает кнопку «Домой», я хочу, чтобы мое приложение завершилось и не входило в фоновый режим. В iOS 4, когда пользователь нажимает кнопку «Домой», приложение вызывает метод applicationDidEnterBackground: делегата для входа в фоновом режиме и для «принудительного» завершения приложения, когда пользователь нажимает кнопку «Домой», я сделал следующее реализация:

- (void)applicationDidEnterBackground:(UIApplication *)application {
        //save everything...
    exit(0);
}

ПРОБЛЕМА: Я заметил, что exit (0) приводит к немедленному завершению работы приложения без вызова методов освобождения, таких как "dealloc", и я думаю, что это не очень хороший стиль программирования. Итак, я хотел бы спросить вас, ребята, как довести приложение до конца «лучше».

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

Ответы [ 4 ]

4 голосов
/ 22 августа 2010

То, что вы на самом деле хотите, - это не выходить из приложения (что, как уже упоминалось, запрещено), а сообщить операционной системе, что вы предпочли бы, чтобы ваше приложение было убито, а не заблокировано.

Существует ключ info.plistдля этого UIApplicationExitsOnSuspend.Установите в своем info.plist значение TRUE (проверено), а затем, когда ваше приложение войдет в фон, оно будет прекращено.

2 голосов
/ 22 августа 2010

Это два вопроса:

  1. Как программно выйти из приложения iPhone - дубликат

    Правильный способ выхода из приложения iPhone?

  2. Как заставить приложение iPhone не переходить в фоновый режим в iOS4:

    Добавьте ключ UIApplicationExitsOnSuspend в ваш info.plist и установите его значение YES http://developer.apple.com/iphone/library/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW23

1 голос
/ 18 июля 2011

Один ответ выше гласит: «Для этого есть ключ info.plist, UIApplicationExitsOnSuspend. Установите для него в вашем info.plist значение TRUE (проверено), а затем, когда ваше приложение войдет в фон, оно будет прекращено».в Xcode 4 значение info.plist равно «Приложение не запускается в фоновом режиме» типа Boolean, поэтому при значении YES приложение завершится, когда пользователь нажмет кнопку «home».

0 голосов
/ 22 августа 2010

Вам не разрешено. Я знаю по своему опыту: получил отклонение приложения от Apple, потому что я вышел (это было два с половиной года назад, но я сомневаюсь, что они изменили свою политику здесь). В UIApplication, IIRC есть "приватный" (то есть не упомянутый в заголовочном файле) метод "terminate". Но Apple говорит, что вы можете этого не делать. Единственное, что вы можете сделать, это показать диалоговое окно с просьбой нажать кнопку «Домой». Но, в свою очередь, не работает, если на устройстве с включенной многозадачностью ... так что я думаю, вам действительно нужно изменить свое приложение таким образом, чтобы вы могли выбросить свое состояние в applicationDidEnterBackground и заново запустить приложение в applicationDidBecomeActive. *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...