终止的应用程序仅重启一次

时间:2018-07-06 04:04:57

标签: ios swift core-location appdelegate

我有一个应用程序,该应用程序应从系统传递位置事件后,即使该应用程序已终止,也应由OS激活。终止可以表示由系统或由用户在多任务切换器中终止。我的应用程序委托代码在下面,位置委托是应用程序委托类的扩展。应用终止后,系统生成的第一个事件已传递到我的应用中并已正确处理,但是我没有收到任何后续事件。收到事件后,我需要运行一些代码来重新注册我的应用程序以供将来更新吗?

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 :(得分:1)

您说您的应用已“终止”。这表明您有意杀死您的应用程序,以此作为一种测试方法。但是,如果某个应用已被强制终止,则系统会故意停止后台位置监视,因此自然不会再有任何访问监视事件。就像您自己打过stopMonitoringVisits

答案 1 :(得分:0)

我知道苹果不允许应用终止。

exit(0)

您可以使用该代码行来终止应用程序