【发布时间】:2014-03-23 18:15:14
【问题描述】:
我无法在后台接收加速度计数据,尽管这个问题How Nike+ GPS on iPhone receives accelerometer updates in the background? 的解决方案看似正确
[_motionManager startAccelerometerUpdatesToQueue:[[NSOperationQueue alloc] init]
withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"perform");
[(id) self setAcceleration:accelerometerData.acceleration];
[self performSelectorOnMainThread:@selector(update) withObject:nil waitUntilDone:NO];
});}];
每当应用程序在前台时,都会记录执行,但每当我退出到后台时,它就会停止运行。有谁知道为什么会这样?我已经在后台模式中检查了“位置更新”...
【问题讨论】:
-
我注意到如果您使用 [NSOperationQueue mainQueue] 而不是创建新队列,它似乎在后台工作。
标签: ios objective-c core-motion