Приложение настроено на получение обновлений местоположения в фоновом режиме, чтобы приложение оставалось активным, а обновления были успешно получены, когда приложение находится в фоновом режиме.
Уведомления Darwin также были настроены и получены только тогда, когда приложение является текущим приложением на переднем плане. Как только приложение переводится в фоновый режим, оно перестает получать уведомления Дарвина.
Есть мысли о том, как получать уведомления Дарвина, когда приложение работает в фоновом режиме?
Фрагменты кода ниже.
Создание приложения в Swift2
в приложении
let callback: @convention(c)
(CFNotificationCenter!, UnsafeMutablePointer<Void>, CFString!, UnsafePointer<Void>, CFDictionary!) -> Void = {
(center, observer, name, object, userInfo) in
//Execute callback code
}
let exCb: CFNotificationCallback = unsafeBitCast(callback, CFNotificationCallback.self)
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(),nil ,exCb,"com.apple.springboard.hasBlankedScreen" as CFString,nil ,CFNotificationSuspensionBehavior.DeliverImmediately)
в контроллере просмотра
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
//locationManager.requestWhenInUseAuthorization()
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
Location updates
и проверить, вызывается ли метод делегатаlocationManager:didUpdateLocations:
- person Sunil Sharma   schedule 24.08.2016