首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CMMotionActivityManager -在app被挂起或处于后台时接收运动活动更新

CMMotionActivityManager -在app被挂起或处于后台时接收运动活动更新
EN

Stack Overflow用户
提问于 2013-10-07 02:16:34
回答 1查看 7.6K关注 0票数 28

我一直在测试新的(CMMotionActivityManager)。我想要创建一个应用程序,可以从startActivityUpdatesToQueue接收和处理运动更新,而应用程序没有在前台运行。当应用程序处于前台时,我正确地接收到运动更新(静止、步行、跑步、汽车、未知),但一旦进入后台(因此被暂停),应用程序就停止接收运动更新。

CMMotionActivityManager类引用:“此方法异步启动对运动数据的跟踪。调用此方法后,运动活动管理器将在指定队列上执行处理程序块,报告设备的当前运动。在此之后,运动活动管理器只在运动数据发生变化时执行处理程序块。处理程序块将尽最大努力执行,并且在应用程序挂起时不会传递更新。如果在应用程序挂起时到达更新,则在应用程序恢复执行时,最后一次更新将传递给应用程序。要获取应用程序挂起时发生的所有更新,请使用queryActivityStartingFromDate:toDate:toQueue:withHandler:方法。”

我想要一个方法来保持我的应用程序在后台运行,并接收运动数据(实时)。现在,保持应用程序在后台运行的唯一方法是使用后台服务,但“运动更新”不在允许的后台服务列表中:

应用商店评论指南

2.5.4多任务应用程序只能为其预期目的使用后台服务: VoIP、音频播放、位置、任务完成、本地通知等。

我不想任何时候都有位置更新(GPS) (为了节省电池)。如果我银行持续的位置更新,但关闭全球定位系统,应用程序将被暂停。

请让我知道如何保持我的应用程序在后台运行,并接收运动活动的更新。一定有办法做到这一点:当应用程序在后台时,我尝试了Strava app....even,当用户停止运行时,它会关闭GPS。当用户恢复运行时,它会自动打开GPS (当应用程序处于后台时),...this可能意味着应用程序在后台运行,并在GPS关闭时主动接收运动活动更新。

EN

回答 1

Stack Overflow用户

发布于 2013-11-10 15:55:46

这不是一个新问题。从来没有核心运动背景使用设置。如果您的应用程序在后台运行,则允许您使用Core,但要使其在后台运行,您必须执行其他操作(例如,在用户将应用程序发送到后台时获取位置更新,location后台服务将在您的Info.plist中列出)。

请注意,在iOS 7中,如果您拥有正确的硬件,您可以使用延迟的位置更新来定期在后台唤醒您的应用程序。这样你就省了电,但是你的应用程序会时不时地在后台运行,而不会出现Info.plist后台服务列表。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19216169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档