HKObjectQuery не остановится - PullRequest
0 голосов
/ 30 мая 2018

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

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

Любые решения или даже объяснения того, почему мы будем очень признательны.

1 Ответ

0 голосов
/ 30 мая 2018

Вам необходимо включить фоновые режимы для вашего расширения WatchKit.

WatchKit Background mode for Workouts

Руководство по программированию приложения для watchOS: использование технологий iOS состояния:

Приложения часов считаются приоритетными;они работают только тогда, когда пользователь взаимодействует с одним из своих интерфейсов.В результате соответствующее расширение WatchKit не может использовать преимущества большинства фоновых режимов выполнения для выполнения задач.Однако есть несколько исключений:

  • Использование объекта HKWorkoutSession для запуска и остановки тренировок.Использование этого объекта требует включения возможности фонового режима Workout Processing в вашей цели расширения WatchKit (не вашей цели приложения WatchKit).Включение этого режима добавляет ключ UIBackgroundModes в файл расширения Info.plist.

Теперь, когда ваше приложение начнет тренировку на Apple Watch, оно будет реагировать на WatchConnectivity.сообщения в фоновом режиме.
Итак, если вы обработали сообщение WatchConnectivity, чтобы остановить тренировку, оно остановится.

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