我一直在测试新的Motion Activity Manager API(CMMotionActivityManager
).我想创建一个应用程序,可以startActivityUpdatesToQueue
在应用程序未在前台运行时接收和处理动作更新.当应用程序处于前台时,我正确接收运动更新(静止,行走,跑步,汽车,未知),但一旦进入后台(因此被暂停),应用程序就不再接收动作更新.
CMMotionActivityManager类参考:"此方法异步启动运动数据的跟踪.在调用此方法时,运动活动管理器在指定的队列上执行处理程序块,报告对设备有效的当前运动.之后,运动活动管理器仅在运动数据发生变化时执行处理程序块.处理程序块在尽力而为的基础上执行,并且在您的应用程序暂停时不会发送更新.如果在您的应用程序被暂停时到达更新,则上次更新将在您的应用程序发送时它会恢复执行.要获取暂停应用程序时发生的所有更新,请使用该queryActivityStartingFromDate:toDate:toQueue:withHandler:
方法."
我想要一种方法来保持我的应用程序在后台运行并接收运动数据(实时).现在,保持应用程序在后台运行的唯一方法是使用后台服务,但"动态更新"不在允许的后台服务列表中:
App Store评论指南:"多任务应用程序只能将后台服务用于其预期用途:VoIP,音频播放,位置,任务完成,本地通知等." 我不想一直有位置更新(GPS)(以节省电池).如果我保留连续的位置更新,但关闭GPS,该应用程序将被暂停.
请让我知道如何让我的应用在后台运行并接收动作活动更新.必须有办法做到这一点:我尝试过Strava应用程序......即使应用程序在后台,当用户暂停运行时它会关闭GPS.当用户恢复运行时,它会自动打开GPS(所有这一切都在应用程序处于后台)...这可能意味着应用程序在后台运行并且即使在GPS关闭时也会主动接收动作活动更新.
先感谢您!