0
Appleによれば、がHKにデータを追加してトリガーされた後にHKObserverQueryCompletionHandler
に電話する必要があります。HKObserverQueryのバックグラウンド配信は、completionHandlerを呼び出した後で動作しなくなる
..:
guard let sampleType = sample as? HKQuantityType else { return nil }
let query = HKObserverQuery(sampleType: sampleType, predicate: nil, updateHandler: { query, completionHandler, error in
completionHandler()
IamExecutingHKStatisticsCollectionQueryHere()
})
healthStore?.execute(query)
healthStore?.enableBackgroundDelivery(for: sampleType, frequency: .hourly, withCompletion: { success, error in
})
私は呼んでいない場合completionHandlerすべて正常に動作しますが、長期間テストしたことがありません。
私はすでにそれを試しました。何も変更していません。問題は、私がcompletionHandler()を呼び出すと、私は他の更新を受け取らないということです。 completionHandlerを呼び出すと、更新の受信を停止したいのですか? –
このようなサンプルの種類はありますか?毎時更新のコード登録新しいデータがあるときに1時間に1回あなたのアプリが起動しないと言っていますか?あなたはそれがすぐに通知を受けることを期待していますか? – Allan
データタイプはステップです。私は新しいステップがHKに追加されたときに毎時通知を受けることを期待しますが、私はそうではありません。完了ハンドラを決して呼び出さなければ、すべてが完璧に動作します。これはバグだと思われますか? –