программно запретить запуск приложения в фоновом режиме iOS - PullRequest
2 голосов
/ 10 июля 2011

У меня есть приложение, которое будет работать в фоновом режиме, но есть один случай, когда я не хочу, чтобы это произошло, могу ли я достичь этого программным путем?

Я знаю, что могу отказаться, изменив это значение plist , но как насчет во время выполнения?

Ответы [ 4 ]

7 голосов
/ 21 мая 2012

Добавьте переменную UIApplicationExitsOnSuspend (приложение не работает в фоновом режиме) в plist ваших приложений и присвойте значение YES.

6 голосов
/ 10 июля 2011

Вы можете закрыть приложение, позвонив exit(0) в applicationDidEnterBackground.

5 голосов
/ 10 июля 2011

Вы не можете использовать exit (0), поскольку b / c apple не позволяет закрыть приложение, не зная об этом пользователя.

Из Технических вопросов и ответов QA1561 Как программно выйти из приложения iPhone? .

Не предусмотрено API для корректного завершения приложения iPhone.Под iPhone OS пользователь нажимает кнопку «Домой», чтобы закрыть приложения.Если в вашем приложении есть условия, при которых оно не может обеспечить выполнение своей целевой функции, рекомендуемый подход заключается в отображении предупреждения для пользователя, в котором указывается характер проблемы и возможные действия, которые может предпринять пользователь - включение WiFi, включение служб определения местоположения и т. Д.Разрешить пользователю завершать работу приложения по своему усмотрению.

0 голосов
/ 10 июля 2011

Вызывать exit () не рекомендуется, и не информировать пользователя о том, что приложение будет закрыто, также не рекомендуется.Таким образом, вам нужно заставить ОС убивать ваше приложение (как это обычно бывает в течение достаточно длительного периода работы), одновременно информируя пользователя.Один из способов сделать это, используя только легальные API-интерфейсы, состоит в том, чтобы полностью очистить как можно больше страниц памяти (malloc и bzero), а затем вызвать Safari с URL-адресом на ненормативном веб-сайте, объясняющим, почему приложение будет закрыто.Safari потребуется достаточно памяти для отображения веб-сайта о том, что ваше приложение будет остановлено операционной системой, точно так же, как пользователь получает соответствующую информацию.

Сон до тех пор, пока таймер отключения ОС не убьет ваше приложение, также убьет ваше приложение, ноэта не реагирующая задержка блокирует пользовательский интерфейс, что не очень удобно для пользователя.

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