Iphone 背景中的核心运动?
当应用程序在后台时,核心运动框架会工作吗?取决于您对工作的定义。。。核心动画是否需要继续运行,还是希望视图冻结?当应用程序在后台运行时,只允许运行某些进程。(例如通知)Iphone 背景中的核心运动?,iphone,ios,core-motion,Iphone,Ios,Core Motion,当应用程序在后台时,核心运动框架会工作吗?取决于您对工作的定义。。。核心动画是否需要继续运行,还是希望视图冻结?当应用程序在后台运行时,只允许运行某些进程。(例如通知) 在大多数情况下,应用程序UI都会暂停,直至触发ApplicationIDBecMeactive。一旦它再次启动,它应该继续运行,但不能在后台继续运行。对于运行OpenGL的iOS上的大多数游戏来说也是如此,它会暂停,直到应用程序再次激活。其中一个应用程序-用于跟踪你的行走步数的移动非常惊人,因为即使你将其放入背景或杀死,它也可以
在大多数情况下,应用程序UI都会暂停,直至触发ApplicationIDBecMeactive。一旦它再次启动,它应该继续运行,但不能在后台继续运行。对于运行OpenGL的iOS上的大多数游戏来说也是如此,它会暂停,直到应用程序再次激活。其中一个应用程序-用于跟踪你的行走步数的移动非常惊人,因为即使你将其放入背景或杀死,它也可以指示你行走的步数。因此,当应用程序被关闭时,陀螺仪、GPS和其他传感器的某些内部机制可以继续运行。为了让应用程序在后台运行,您必须将其声明为后台任务。问题是只有几个。。。运动不是其中之一
一种解决方法是启用UIBackgroundMode
位置
,它旨在让用户知道他们的位置,即使应用程序在后台。然后,您可以将您的运动逻辑封装在其中。然而,明显的缺点是,这涉及到GPS的使用,这将大大耗尽电池 核心运动框架允许访问CMPedometer数据的历史数据,因此如果您的应用程序仅使用此框架,则无需在后台运行
上周我一直在玩CM,在我的测试中,如果你的应用程序被发送到后台时有一个活动查询正在运行,那么查询处理程序在返回前台时会收到大量事件(发生在应用程序挂起时)。我不知道有多少事件将被缓存,我也没有在文档中看到任何关于这方面的内容
这种行为似乎已经足够了。我想不出一个核心运动的用例,在这个用例中,你需要不断的背景访问,历史CM计步器数据不够,并且符合应用商店的指导原则。你有没有找到满意的答案?我已经看到一些计步器在从背景模式返回后获得核心运动的数据。因此,应该有一种方法可以通过
startAccelerometerUpdatesToQueue
继续接收数据。对我来说,在我将应用程序放到后台几秒钟/分钟后,它就会工作,但一段时间后它就会停止。可能您必须使用其中一种背景模式(音频、位置、voip)来保持应用程序的“活动”。如果启用位置的背景模式,请记住在app store的应用程序描述中添加以下语句:“继续在后台使用GPS会显著缩短电池寿命”。否则,app store review不会批准该应用程序。如果你的应用程序在后台没有明确使用核心位置框架,那么你被接受的可能性很小。你在所有方面都是对的,但当应用程序在后台时,CMPedometer有一个使用案例:如果你在应用程序图标上的徽章中显示步数,然后你需要每隔一段时间唤醒你的应用程序(当iOS后台模式决定它是否合适时),并更新它的徽章数量;由于您在后台无法访问实时流,因此可以使用queryedometerdata(从开始:Date到结束:Date,使用handler:@escaping CMPedometerHandler)
。我想苹果会让它通过,因为它不常见,而且大多无害。