iPhone: ловить события, когда приложение работает в фоновом режиме - PullRequest
1 голос
/ 19 января 2012

Может ли кто-нибудь сообщить мне, возможно ли обрабатывать такие события, как OrientationChanged, Shake, LocationChanged и т. Д., Когда мое приложение работает в фоновом режиме?

Я попробовал следующий код, но он вызывается только тогда, когда мое приложение работает на переднем плане!

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
//if the time interval returned from core location is more than two minutes we ignore it because it might be from an old session
if ( abs([newLocation.timestamp timeIntervalSinceDate: [NSDate date]]) < 120) {     
    self.currentLocation = newLocation;
}
NSLog(@"lat: %f long:%f",currentLocation.coordinate.latitude,currentLocation.coordinate.longitude);
}

Спасибо.

1 Ответ

2 голосов
/ 19 января 2012

http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html

Вы должны включить location-services в файл info.plist под ключом UIRequiredDeviceCapabilities

, тогда ваше приложение будетполучать обновления местоположения в фоновом режиме.Однако это разряжает батарею более быстрыми темпами ... без знания пользователем большого количества ... Если возможно, вам следует зарегистрироваться только для значимого местоположения

Обновления с измененной ориентацией не будут возможны в фоновом режиме.встряхнуть может быть .. я не уверен

...