Ios 已终止的应用程序只重新启动一次
我有一个应用程序,根据设计,即使应用程序已经终止,也应该在系统发送位置事件后由操作系统激活。终止可以指由系统或多任务切换器中的用户终止。下面是我的应用程序委派代码,位置委派是应用程序委派类的扩展。应用程序终止后,系统生成的第一个事件已发送到我的应用程序并得到正确处理,但我没有收到任何后续事件。在收到事件后,是否需要运行一些代码来重新注册我的应用程序,以便将来进行更新Ios 已终止的应用程序只重新启动一次,ios,swift,core-location,appdelegate,Ios,Swift,Core Location,Appdelegate,我有一个应用程序,根据设计,即使应用程序已经终止,也应该在系统发送位置事件后由操作系统激活。终止可以指由系统或多任务切换器中的用户终止。下面是我的应用程序委派代码,位置委派是应用程序委派类的扩展。应用程序终止后,系统生成的第一个事件已发送到我的应用程序并得到正确处理,但我没有收到任何后续事件。在收到事件后,是否需要运行一些代码来重新注册我的应用程序,以便将来进行更新 var window: UIWindow? var locationManager: CLLocationManager!
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")
}
你说你的应用程序已经“终止”。这意味着你故意杀掉你的应用作为一种测试方式。但是如果一个应用程序被强制终止,系统会故意停止后台位置监控,所以你自然不会再收到任何访问监控事件。就好像你自己打电话给了
停止监控访问
。据我所知,苹果不允许应用程序终止
exit(0)
您可以使用该代码行终止应用程序这与您的问题无关,但您的代码是错误的:如果您只想监视访问,您不需要也不应该将
allowsBackgroundLocationUpdates
设置为true
。这不是我看到的行为。如果我使用多任务窗格强制关闭应用程序,那么应用程序仍然会收到下一个位置更新,但之后不会收到任何更新。我说这是意料之中的。