acelerómetro iOS en segundo plano (infinito)

Me gustaría que mi aplicación controle mi acelerómetro durante un time infinito (incluso en segundo plano). Cuando llega a cierta cantidad, me gustaría enviar una notificación local. Esta es exactamente la misma funcionalidad que tiene la aplicación 'Sleep Cycle'.

¿Pero cómo hicieron esto? Cuando uso la function beginBackgroundTaskWithExpirationHandler, ya no funciona después de 10 minutos. Agregar UIBackgroundModes no ayuda en absoluto.

UIApplication *app = [UIApplication shanetworkingApplication]; bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ [app endBackgroundTask:bgTask]; bgTask = UIBackgroundTaskInvalid; }]; _motionManager = [[CMMotionManager alloc] init]; _motionManager.accelerometerUpdateInterval = 1; NSOperationQueue *queue = [[NSOperationQueue alloc] init]; [_motionManager startAccelerometerUpdatesToQueue:queue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSLog(@"%@",accelerometerData); if(accelerometerData.acceleration.x > 0.5){ UILocalNotification *localNotif = [[UILocalNotification alloc] init]; if (localNotif == nil) return; localNotif.fireDate = [NSDate date]; localNotif.timeZone = [NSTimeZone defaultTimeZone]; localNotif.alertBody = @"Wake up!"; localNotif.alertAction = @"wake"; localNotif.soundName = UILocalNotificationDefaultSoundName; localNotif.applicationIconBadgeNumber = 4; [[UIApplication shanetworkingApplication] scheduleLocalNotification:localNotif]; [app endBackgroundTask:bgTask]; bgTask = UIBackgroundTaskInvalid; } }); }]; 

Solutions Collecting From Web of "acelerómetro iOS en segundo plano (infinito)"