Обратный отсчет NStimer показывает старое время, когда приложение снова открывается - iphone делает снимок экрана? - PullRequest
2 голосов
/ 28 ноября 2010

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

Скажем, я закрываю приложение в 03:12 (3 минуты 12 секунд). Я снова открываю приложение, и мой код (в делегате приложения) вычитает закрытое время (скажем, 5 секунд), а затем снова устанавливает метку обратного отсчета. Устанавливается 03: 07.

Однако странное поведение заключается в том, что при повторном открытии приложение говорит «03:12» в течение секунды «РАЗДЕЛИТЬ», а затем обновляется до 03:07. Тем не менее, я не могу найти где-нибудь, где он будет устанавливать старое время.

Итак, мой вопрос в том, сохраняет ли представление значение метки до следующей загрузки или (как я слышал), что iphone делает снимок экрана, поэтому, когда приложение загружается в следующий раз, оно выглядит как загрузка быстрее. Если это правильно, есть ли способ остановить это?

Я застрял с этим !!

1 Ответ

3 голосов
/ 28 ноября 2010

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

Простым выходом было бы просто скрыть вашу метку в applicationWillResignActive: метод вашего делегата приложения, а затем обновить и снова отобразить его в вашем applicationWillEnterForeground: метод.

...