只是想知道是否有人知道Strava在锻炼期间如何在iOS的后台运行?我目前正在构建一个基于位置的iOS应用,该应用需要继续在后台运行,我有点困惑。
在过去的一个月中,我能够使用HealthKit和HKLiveWorkoutBuilder为Apple Watch制作原型,但是由于无法使用iPhone上的许多类,因此我似乎无法在iPhone上使用相同的方法手表上没有此功能,例如HKWorkoutSession和HKLiveWorkoutBuilder。
答案 0 :(得分:1)
这些应用程序通常利用UIBackgroundModes功能,以便在应用程序后台运行时进行任何处理。特别是,Strava正在使用的后台模式很可能是后台定位服务。应当注意,Apple控制分配给您程序的大部分资源/时间,并且一旦离开前台,便无法像在前台运行那样自由地获取这些资源。
我有机会研究基于位置服务的应用程序,该应用程序即使在后台运行也需要跟踪和发送位置更新,并且能够在iOS 8上实现此功能。
近年来,Apple已更新了向用户请求定位服务的方式。应用程序的开发人员可以指定requestAlwaysAuthorization或requestWhenInUse。前者将使您即使在后台运行应用程序时也可以响应位置更新。
CoreLocation API非常灵活,例如您可以指定是只响应较小的距离变化还是较大的变化。
开发人员文档是非常可靠的参考,如果您想了解有关后台执行模式的更多信息,可以在这里进行:
为了让您开始使用CoreLocation,以下是不错的资源: