2015-05-17 3 views
1

Я пытаюсь закодировать приложение, которое напоминает мне, чтобы попасть в определенную цель диеты (пить 8 стаканов воды, есть два плода, принимать витамины и т. Д.)Как закодировать напоминание о диете в iOS?

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

Если я кодирую их как NSTimer, проблема в том, что они не запускаются в фоновом режиме.

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

Каков правильный подход?

ответ

1

если я код это как напоминание, используя локальные уведомления, я не получаю, чтобы выполнить код

Я использую таблетки, принимая приложение, и это использовать локальные уведомления. Локальное уведомление позволяет приложению выполнять код, если пользователь нажимает/записывает (независимо) уведомление. Затем приложение создает диалог, в который я ввожу то, что на самом деле произошло (я взял таблетку, пропустил ее и т. Д.).

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

+0

Выполнение локального уведомления будет работать для ведения счета в результате действия пользователя, но оно не будет работать для логики, основанной на времени. Например, перестаньте напоминать после 7 вечера, потому что вы не должны потреблять этот предмет вечером. Или даже во время сна. Как работает ваше приложение? Не мешает ли вам во время сна? – erotsppa

+0

«Выполнение локального уведомления будет работать для поддержания счета в результате действия пользователя, но оно не будет работать для логики, основанной на времени« Исправить; это именно то, что я вам говорю! Логика, основанная на времени, является бизнес-логикой вашего приложения, и она является внутренней и до вашего приложения. Локальные уведомления - это всего лишь способ общения с пользователем. Но у них есть большое преимущество в том, что они хранятся в _system_, который всегда работает, а ваше приложение - нет. Таким образом, они могут напоминать, когда ваше приложение не работает, что в большинстве случаев. – matt

 Смежные вопросы

  • Нет связанных вопросов^_^