В приложении «Напоминания», представленном с iOS 5, вы можете настроить геозонность, чтобы напоминание напоминало, когда вы приближаетесь к адресу. На основе местоположения также можно настроить определенный день. Apple очень эффективна в отношении того, как они обрабатывают напоминания о местоположении и времени, поскольку они не начинают отслеживать ваше местоположение, пока оно не станет днем напоминания.Как приложение Reminders знает, как отслеживать мое местоположение только в день напоминания?
Пример:
Это понедельник, и я установить напоминание на среду, чтобы напомнить мне, когда я вернусь домой, чтобы вывезти мусор.
Если вы обратите внимание, вы заметите, что индикатор обслуживания местоположения (фиолетовый треугольник) рядом с индикатором срока службы батареи не будет отображаться вплоть до полуночи в среду.
Мне любопытно, существует ли публичный API, который позволяет вашему приложению реагировать на изменения времени, подобные этому, или если они используют некоторые частные API.
я смог найти UIApplicationSignificantTimeChangeNotification
и applicationSignificantTimeChange:
, но это указано в документации,
Если ваше приложение в настоящее время приостановлено, это сообщение не очередями до вашего возвращения приложения на передний план, в котором указать это доставлен.
Так что это заставляет меня думать, что это не сработает.
Моя другая мысль - использовать UILocalNotification и устанавливать уведомление на интересующее вас время и когда это уведомление увольняется, выполните код для включения служб определения местоположения. Из-за моего отсутствия опыта работы с UILocationNotification, однако я знаю, можно ли выполнить такой код.
Кто-нибудь знает, как этого достичь?
Вы не можете сделать это с помощью LocalNotifications, это уведомление показывает только всплывающее окно с указанным сообщением. –