Swift 如何在watchOS中运行后台进程?
我已经为apple watch制作了第一个应用程序,并且面临着无法每10秒向后端发送数据的问题 当显示器关闭时,应用程序被冻结,当显示器打开时,应用程序重新运行 我试着像往常一样进行锻炼 但这并没有帮助,应用程序在10秒不活动后被冻结 我尝试在InterfaceController.swift中每隔10秒向后端发送加速计数据:Swift 如何在watchOS中运行后台进程?,swift,watchos,watchos-3,Swift,Watchos,Watchos 3,我已经为apple watch制作了第一个应用程序,并且面临着无法每10秒向后端发送数据的问题 当显示器关闭时,应用程序被冻结,当显示器打开时,应用程序重新运行 我试着像往常一样进行锻炼 但这并没有帮助,应用程序在10秒不活动后被冻结 我尝试在InterfaceController.swift中每隔10秒向后端发送加速计数据: //... override func willActivate() { super.willActivate() startWorkout() //it
//...
override func willActivate() {
super.willActivate()
startWorkout() //it's copied from example
startAnglesTracker()
}
func startAnglesTracker() {
if motion.isAccelerometerAvailable && !motion.isAccelerometerActive {
motion.accelerometerUpdateInterval = 10
motion.startAccelerometerUpdates(to: OperationQueue.main) {
//sending here
}
}
}
private func startWorkout() {
let workoutConfiguration = HKWorkoutConfiguration()
workoutConfiguration.activityType = .crossTraining
workoutConfiguration.locationType = .indoor
do {
workoutSession = try HKWorkoutSession(configuration: workoutConfiguration)
workoutSession?.delegate = self
healthStore.start(workoutSession!)
vibrate()
} catch {
serverData.setText("workoutSession error")
}
}
//...
extension InterfaceController: HKWorkoutSessionDelegate {
func workoutSession(_ workoutSession: HKWorkoutSession, didFailWithError error: Error) {
}
func workoutSession(_ workoutSession: HKWorkoutSession, didGenerate event: HKWorkoutEvent) {
}
func workoutSession(_ workoutSession: HKWorkoutSession, didChangeTo toState: HKWorkoutSessionState, from fromState: HKWorkoutSessionState, date: Date) {
}
}
它仅在显示器处于活动状态时工作。信息不足。给我们看看你的代码。你想做什么?什么时候会结冰?为了缩小问题范围,您进行了哪些调试?对不起,我添加了带有代码的信息。您的问题中没有与训练相关的代码。在watchOS中,收集加速计数据不是有效的后台模式。如果要将应用程序用作训练应用程序,则需要运行
HKWorkoutSession
。添加了与训练相关的代码