我有一个后台任务应该返回一系列课程,然后发送到 Apple Watch。我正在didReceiveMessage
通过内部调用任务WatchConnectivity
。
后台任务需要执行一些操作,例如打开领域数据库、查询结果和访问文档目录,然后才能将响应返回到课程字典。当手表输出获取课程数据时,逻辑似乎起作用。问题是我不认为后台任务实际上是在调用该方法getWatchCourses()
DispatchQueue.global().async {
var foundCourses = [[String : Any]]()
let application = UIApplication.shared
backgroundTask = application.beginBackgroundTask(withName: "app.test.getCourses") {
let watchModel = WatchCourseModel()
let courses = watchModel.getWatchCourses()
print("Courses: \(courses)")
foundCourses.append(contentsOf: courses)
}
replyHandler(["response": foundCourses])
application.endBackgroundTask(backgroundTask)
backgroundTask = UIBackgroundTaskInvalid
}
getWatchCourses()
如果结果是硬编码的,这也不起作用。应用程序可以在后台执行此逻辑还是应该工作?
还值得指出的是,网上没有任何地方对此进行记录,它们总是指将简单的文本响应发送回手表,而不是处理器密集型的:(
谢谢