我是swift和WatchKit框架的新手。我从一个月开始学习这个。现在我的问题是:有可能在apple watch上以后台模式运行应用程序吗?我从文档中读到WatchKit扩展不支持后台执行模式。但如果这件事是真的,如何工作的应用程序,如健康应用程序?我的意思是,在手表上有一个名为健康的应用程序,即使应用程序不在前台,它也会在每个时刻记录您的心率。我或多或少会做同样的事情。在我的应用程序中,即使应用程序不在前台,我也只会在用户移动手表时检测用户加速度。我该怎么做?请给我张贴必要的文件这样做。非常感谢!
Ps.对不起我的英语!
4条答案
按热度按时间n53p2ov01#
是的,你可以。有几种方法:
1.使用HKWorkoutSession开始锻炼-最强大的方式,但您需要使用HealthKit,Apple Watch上只有一个应用程序可以以这种方式运行。
1.使用WKAudioFilePlayer在后台播放音频-仅用于音频。
1.还有其他后台任务,例如
WKSnapshotRefreshBackgroundTask
或WKURLSessionRefreshBackgroundTask
。它们列在this article的后台任务部分。performExpiringActivity(withReason:using:)
可用于在应用程序进入后台时短暂延长其寿命。另外,请阅读Leveraging iOS Technologies。
crcmnpdw2#
使用WatchOS 6+,如果您的手表应用福尔斯以下5种用例之一,则可以请求
WKExtendedRuntimeSession
(see documentation):相关WWDC视频解释
WKExtendedRuntimeSession
:https://developer.apple.com/videos/play/wwdc2019/251/mpgws1up3#
在watchOS 3中,锻炼应用程序可以在后台运行。我没有个人经验,但检查WWDC 2016视频Building Great Workout Apps。
mm9b1k5b4#
我也面临着同样的问题。我想在应用程序处于后台模式时执行一些代码。我已经解决了这个问题。我发现了一个额外的状态,我的手表应用程序将继续在后台运行,这不需要
HKWorkoutSession
或上面讨论的任何其他解决方案。只要按照这些步骤1.导入
CoreLocation
1.在类中添加
CLLocationManagerDelegate
1.在
willActive
方法中添加以下代码。1.在最后添加CLLocationManagerDelegate
也许这会解决你的问题。