Нужна справка iOS о том, что происходит в спящем, ждущем и / или режиме ожидания - PullRequest
2 голосов
/ 12 января 2011

Я - новый разработчик ObjC, и после поиска в Интернете и документации для разработчиков Apple, я не могу найти хорошее краткое объяснение различных режимов устройства iOS и что происходит в этих режимах.Я вижу много небольших дискуссий, но ничего общего с общей картиной нет.

Например, я вижу, что некоторые приложения «Тревога» для iPhone / iPad утверждают, что могут запускать тревоги (предположительно, не только системные оповещения) утром.Я изо всех сил пытаюсь понять, как это происходит, даже если пользователь позволяет приложению просто продолжать работать в течение ночи, предполагая, что устройство переходит в спящий режим после неиспользования.

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

Мне просто хотелось бы указатьна веб-сайт, книгу или часть документации Apple, которая объясняет различные состояния устройства, что происходит в iOS 3 и 4 с приложением в каждом состоянии, и как управлять этим, если вы хотите создать подобное приложениена симулированный прикроватный будильник, который всегда включен и т. д.

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

Ответы [ 2 ]

4 голосов
/ 12 января 2011

Эти «сигналы тревоги» являются локальными уведомлениями и очень удобны. Они запускаются, даже когда приложение закрыто, и даже когда устройство спит.

Концепция сна не слишком сложна; когда пользователь «выйдет» из вашего приложения (нажав кнопку «Домой»), ваше приложение будет либо остановлено и переведено в замороженное состояние (4.x), либо полностью завершено (3.x). Тем не менее, вам предоставляется возможность выполнить несколько операций очистки до того, как последний произойдет с методом - (void)applicationWillTerminate:(UIApplication *)application, и до того, как первый произойдет с методом - (void)applicationDidEnterBackground:(UIApplication *)application (оба будут вызваны вашим классом делегата).

Концепция «сна» означает, что как в iPhone OS 3, так и в iOS 4 вы получите следующий метод, когда ваше приложение теряет фокус (а также, когда приходит SMS или предупреждение и т. Д.):

- (void)applicationWillResignActive:(UIApplication *)application

Действительно, большинство приложений (за исключением приложений, предназначенных для работы в фоновом режиме, таких как VoIP, потоковое аудио и т. Д.) Просто закрываются при закрытии. Но если вам нужно, вы также можете приостановить зависание своего приложения и попросить больше времени для выполнения задачи.

Это было намного легче понять в дни 3.x, но теперь с «многозадачностью» 4.x становится немного сложнее. Это не слишком страшно, и чтение поможет немного .

0 голосов
/ 12 января 2011

Это может помочь:

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.html

см. ApplicationState для UIApplicationState.

...