Я создал простое приложение, которое отслеживает местоположение пользователя и создает локальное уведомление для каждого временного местоположения.
Я включил фоновые режимы ниже,
let locationManager = CLLocationManager()
open override func viewDidLoad() {
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.distanceFilter = 10
locationManager.allowsBackgroundLocationUpdates = true
locationManager.startUpdatingLocation()
}
open func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let notification = UILocalNotification()
notification.alertBody = "location updated"
notification.fireDate = Date()
UIApplication.shared.scheduleLocalNotification(notification)
}
Я устанавливаю строку для NSLocationAlwaysUsageDescription
и запрашиваю разрешение. Предоставление разрешения пользователя для использования всегда, когда приложение загружается в первый раз.
Это хорошо работает, когда приложение находится на переднем плане, когда оно идет в фоновом режиме все еще работает, по крайней мере, в 5-40 минутном диапазоне времени, который изменяется батареей или другими открытыми приложениями.
Проблема в том, почему она перестает работать, не ожидается ли она работать?
Я никогда не видел ограничения по времени в документах Apple.