iPhone - проблема NSTimer при блокировке iphone - PullRequest
1 голос
/ 29 августа 2011

У меня NSTimer, который проверяет последние данные с сервера каждые 15 секунд.Когда приложение переходит в фоновый режим, я останавливаю таймер в следующем методе делегата приложения

- (void)applicationWillResignActive:(UIApplication *)application

Когда приложение возвращается в активное состояние, я активирую таймеры, и оно снова становится активным

- (void)applicationWillEnterForeground:(UIApplication *)application

Эта функция работает нормально.Но когда я покидаю iPhone, он блокируется через некоторое время.Когда я его разблокирую, функциональность не продолжается должным образом.Таймер не работает.

Что я делаю не так?

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

Ответы [ 2 ]

1 голос
/ 29 августа 2011

Я думаю, вам может понадобиться дополнительный метод делегата, отличный от applicationWillEnterForeground. Я думаю, что когда пользователь разблокирует свой телефон, ваше приложение уже будет на переднем плане и поэтому не будет входить в него. Но я не уверен, каким будет метод делегата, может быть applicationDidBecomeActive

0 голосов
/ 29 августа 2011

Так работает фоновая обработка Apple ...

Вы можете создать фоновую задачу, которая заставит NSTimer работать в фоновом режиме, НО они ограничены во времени, выне может работать всегда в фоновом режиме.

...