Завершение приложения только один раз перезапускается - PullRequest
0 голосов
/ 06 июля 2018

У меня есть приложение, которое по замыслу должно быть активировано ОС после доставки события местоположения из системы, даже если приложение было прервано. Завершение может означать завершение системой или пользователем в многозадачном коммутаторе. Мой код делегата приложения приведен ниже, а делегат местоположения является расширением класса делегата приложения. Первое событие, которое генерируется системой после завершения приложения, доставляется в мое приложение и обрабатывается должным образом, но я не получаю никаких последующих событий. Нужно ли выполнить какой-либо код после получения события, чтобы перерегистрировать мое приложение для будущих обновлений?

var window: UIWindow?
    var locationManager: CLLocationManager!
    var notificationCenter: UNUserNotificationCenter?
    var today:String?     //Today's date format: YYYY-MM-DD


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        if launchOptions?[UIApplicationLaunchOptionsKey.location] != nil {

            self.locationManager = CLLocationManager()
            self.locationManager.delegate = self
            self.locationManager.requestAlwaysAuthorization()
            self.locationManager.startMonitoringVisits()
            self.locationManager.allowsBackgroundLocationUpdates = true
            sendTestNotification()
        } else {
            print("normal launch")

        }

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Завершение приложения не разрешено Apple, как я знаю.

exit(0)

Вы можете использовать эту строку кода для завершения приложения

0 голосов
/ 06 июля 2018

Вы говорите, что ваше приложение было "прекращено". Это говорит о том, что вы намеренно убили ваше приложение в качестве способа тестирования. Но если приложение было принудительно прервано, система намеренно останавливает фоновый мониторинг местоположения, поэтому, естественно, вы больше не будете получать события мониторинга посещений. Это как если бы вы сами позвонили stopMonitoringVisits.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...