我正在开发SDK,尝试捕获应用程序终止的通知。可以通过 (例如)
所以我希望在终止时有类似的行为:
“而且这个从未被调用!” “当然,如果我加入AppDelegate:”
它会起作用,但由于我正在构建一个SDK,因此无法使用AppDelegate方法。有一种方法可以获取终止闭包调用吗?或者任何其他了解应用程序即将终止的方法?
在苹果文档中,您可以找到以下内容:
引用:
NSNotification.Name.UIApplicationWillResignActive
的闭包轻松获取此通知。self.resignActiveNotification = NotificationCenter.default.addObserver(forName: NSNotification.Name.UIApplicationWillResignActive,
object: nil,
queue: nil) { _ in
//something goes here and it works like a charm.
}
所以我希望在终止时有类似的行为:
self.terminateNotification = NotificationCenter.default.addObserver(forName: NSNotification.Name.UIApplicationWillTerminate,
object: nil,
queue: nil) { _ in
NSLog("%@",#function)
}
“而且这个从未被调用!” “当然,如果我加入AppDelegate:”
func applicationWillTerminate(_ application: UIApplication) {
//termination
}
它会起作用,但由于我正在构建一个SDK,因此无法使用AppDelegate方法。有一种方法可以获取终止闭包调用吗?或者任何其他了解应用程序即将终止的方法?
在苹果文档中,您可以找到以下内容:
引用:
在调用此方法后,该应用程序还会发布UIApplicationWillTerminate通知,以便感兴趣的对象有机会响应转换。
然而,这似乎是错误的。
applicationWillTerminate
方法将被调用,以通知状态更改。 - JakubNSLog("%@",#function)
已被调用... 此外,NotificationCenter.default.addObserver(self, selector: #selector(doSomething), name: NSNotification.Name.UIApplicationWillTerminate, object: nil)
对我来说也很好用。 - Ahmad F对于支持后台执行的应用程序,在用户退出应用程序时通常不会调用此方法,因为在这种情况下应用程序只是移动到后台。但是,在应用程序在后台运行(未挂起)且系统需要出于某种原因终止它的情况下,可能会调用此方法。
- rckoenes