HKObjectQuery不会停止

时间:2018-05-30 05:18:31

标签: swift watchkit apple-watch health-kit hkhealthstore

我正在尝试使用Apple Watch在我的应用上进行锻炼,以创造良好的用户体验。我可以在我的手表上开始一个HKWorkoutSession并在前景和后台停止它。

我的问题是,当监视应用程序在后台时,HKObjectQuery似乎没有停止。为了澄清,如果我在锻炼期间锁定手表和手机约3分钟,然后尝试停止从手机应用程序停止锻炼没有任何反应。

任何解决方案,甚至解释为什么会受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

您需要为WatchKit扩展启用后台模式。

WatchKit Background mode for Workouts

App Programming Guide for watchOS: Leveraging iOS Technologies州:

  

观看应用被视为前景应用;它们仅在用户与其中一个接口交互时运行。因此,相应的WatchKit扩展无法利用大多数后台执行模式来执行任务。但是,有一些例外:

     
      
  • 使用HKWorkoutSession对象启动和停止锻炼。使用此对象需要在WatchKit扩展目标(而不是WatchKit App目标)中启用Workout Processing后台模式功能。启用此模式会将UIBackgroundModes密钥添加到扩展程序的Info.plist文件中。
  •   

现在,当您的应用程序在Apple Watch上开始锻炼时,它将在后台响应WatchConnectivity消息 因此,如果您已处理WatchConnectivity消息以停止锻炼,它将停止。