Разница между «завершением» приложения, открытием «переключателя задач» и «автоматической блокировки» - PullRequest
0 голосов
/ 21 июля 2010

Мне известно о том, что название этой темы не соответствует стандартам. Во всяком случае, вот проблема, с которой я сталкиваюсь:

Мое приложение отображает табличное представление с релевантным по времени контентом (контент может устареть) и регулярно обновляется, вызывая веб-службу и анализируя ее xml-ответ.

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

для этого я реагирую на вызовы - (void)applicationWillResignActive:(UIApplication *)application в моем AppDelegate.

это делает работу довольно хорошо, НО

  • если пользователь дважды щелкнет значок дома, чтобы открыть переключатель задач, представление таблицы также исчезнет
  • то же самое происходит, если iphone автоматически блокирует экран

Итак, есть ли способ отличить «тип» неактивного состояния, в которое входит приложение, или любые другие средства, позволяющие мне по-разному обрабатывать эти три изменения состояния? Или мне нужно идти по совершенно иному пути здесь?

Спасибо за вашу помощь
* Сэм

1 Ответ

0 голосов
/ 22 июля 2010

Sam

Я бы подошел к вашей проблеме немного иначе. Я хотел бы сохранить NSDate до NSUserDefaults каждый раз, когда вы обновляете свои данные из веб-службы. Затем всякий раз, когда вызывается ваш метод - (void)applicationDidBecomeActive:(UIApplication *)application в вашем AppDelegate, просто сравнивайте сохраненную NSDate с текущей отметкой времени ([NSDate date]), и, если разница больше, чем время ожидания обновления, скрывайте tableView и перезагружайте данные.

С другой стороны, я думаю, что вы хотите applicationDidEnterBackground: вместо applicationWillResignActive:.

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