有没有办法保证applicationWillTerminate
代表中的AppDelegate
方法会受到影响?类似于info.plist文件中的键等等。?
我的目标:我正在使用信标应用,代码片段在this article。我的问题是,即使我在灯塔旁边,来自didEnterRegion的消息仍然会弹出。为了解决这个问题,我正在设置一个标志来控制消息。我的代码如下:
if(!UserDefaults.standard.bool(forKey: Constants.EnterZoneMsgShowName)){
let notification = UILocalNotification()
notification.alertBody = "Hi, you are about to arrive at CIDMA's office. Please open de demo app and turn on the bluetooth on your device to enrich your experience. "
UIApplication.shared.presentLocalNotificationNow(notification)
UserDefaults.standard.set(true, forKey: Constants.EnterZoneMsgShowName)
}
我想在关闭应用时将此标志设置为false。我试着将它放在applicationWillTerminate
,但这种方法并不是每次都被击中。
我想知道如何保证此代码会被点击,或者是否有更好的地方放置代码:UserDefaults.standard.set(false, forKey: Constants.EnterZoneMsgShowName)
答案 0 :(得分:2)
applicationWillTerminate(_ :) - 告诉代表该应用程序的时间 终止。
对于不支持后台执行或与iOS 3.x或更早版本关联的应用,当用户退出应用时,此方法始终。
对于支持后台执行的应用,当用户退出应用时,此方法通常不会被调用,因为在这种情况下应用只会移动到后台。但是,可以在应用程序在后台运行(未暂停)并且系统因某种原因需要终止它的情况下调用此方法。
如果您的应用程序支持后台执行,您要调用的是applicationDidEnterBackground
,当用户退出时,将调用此方法而不是applicationWillTerminate:
。