Вызов stopActivityUpdates не останавливает обновления - PullRequest
0 голосов
/ 21 сентября 2019

После запуска motionActivityUpdates любая попытка остановить его не работает.Вот код, который я использую для запуска движения.Существует аналогичный вопрос без каких-либо ответов, и он находится на C. При чтении документации это должно остановить действия обновлений

Вызовите этот метод, чтобы остановить доставку обновлений, которые выначалось с вызова метода startActivityUpdates (to: withHandler :).Этот метод не останавливает запросы, запущенные с использованием метода queryActivityStarting (from: to: to: withHandler :).

var manager: CMMotionActivityManager?
var motionManager: CMMotionManager?
func startMotionMonitoring() {
    motionManager = CMMotionManager()
    manager = CMMotionActivityManager()
    startActivityMonitoring()
}

func startActivityMonitoring() {
    if !CMMotionActivityManager.isActivityAvailable() {
        return
    }

    if CMMotionActivityManager.authorizationStatus() != .authorized {
        return
    }

    if let man = manager {
        man.startActivityUpdates(to: .main) { (activity) in
            guard let a = activity else {
                return
            }
            print("motionActive")
        }
    }
}

У меня есть другая функция, которую я вызываю, чтобы остановить все

func endMotionMonitoring(){
    if manager == nil && motionManager == nil { return }
    manager!.stopActivityUpdates()
    manager = nil

    motionManager!.stopAccelerometerUpdates()
    motionManager = nil
}

Но это не останавливает обновления активности движения.Каждый раз, когда я перемещаю телефон, он печатает утверждение «motionActive»

Кто-нибудь знает, как это исправить?

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