【问题标题】:HKObjectQuery Won't StopHKObjectQuery 不会停止
【发布时间】:2018-05-30 05:18:31
【问题描述】:

我正在尝试为使用 Apple Watch 在我的应用程序上进行锻炼创造良好的用户体验。我可以在手表上启动 HKWorkoutSession 并在前台和后台正常停止。

我的问题是,当手表应用程序在后台时,HKObjectQuery 似乎没有停止。澄清一下,如果我在锻炼期间锁定手表和手机约 3 分钟,然后尝试通过手机应用程序停止锻炼,则不会发生任何事情。

非常感谢任何解决方案,甚至解释原因。

【问题讨论】:

    标签: swift watchkit apple-watch healthkit hkhealthstore


    【解决方案1】:

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

    App Programming Guide for watchOS: Leveraging iOS Technologies 状态:

    手表应用被视为前台应用;它们仅在用户与其界面之一交互时运行。因此,相应的 WatchKit 扩展无法利用大多数后台执行模式来执行任务。但是,也有一些例外:

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

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

    【讨论】:

      猜你喜欢
      • 2010-11-05
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多