我有一个应用程序,该应用程序应从系统传递位置事件后,即使该应用程序已终止,也应由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")
}
答案 0 :(得分:1)
您说您的应用已“终止”。这表明您有意杀死您的应用程序,以此作为一种测试方法。但是,如果某个应用已被强制终止,则系统会故意停止后台位置监视,因此自然不会再有任何访问监视事件。就像您自己打过stopMonitoringVisits
。
答案 1 :(得分:0)
我知道苹果不允许应用终止。
exit(0)
您可以使用该代码行来终止应用程序