我正在尝试使用Apple Watch在我的应用上进行锻炼,以创造良好的用户体验。我可以在我的手表上开始一个HKWorkoutSession并在前景和后台停止它。
我的问题是,当监视应用程序在后台时,HKObjectQuery似乎没有停止。为了澄清,如果我在锻炼期间锁定手表和手机约3分钟,然后尝试停止从手机应用程序停止锻炼没有任何反应。
任何解决方案,甚至解释为什么会受到高度赞赏。
答案 0 :(得分:0)
您需要为WatchKit扩展启用后台模式。
App Programming Guide for watchOS: Leveraging iOS Technologies州:
观看应用被视为前景应用;它们仅在用户与其中一个接口交互时运行。因此,相应的WatchKit扩展无法利用大多数后台执行模式来执行任务。但是,有一些例外:
- 使用
HKWorkoutSession
对象启动和停止锻炼。使用此对象需要在WatchKit扩展目标(而不是WatchKit App目标)中启用Workout Processing后台模式功能。启用此模式会将UIBackgroundModes
密钥添加到扩展程序的Info.plist
文件中。
现在,当您的应用程序在Apple Watch上开始锻炼时,它将在后台响应WatchConnectivity消息 因此,如果您已处理WatchConnectivity消息以停止锻炼,它将停止。