【发布时间】:2019-05-14 21:32:45
【问题描述】:
我的目标是创建一个本地通知,如果用户 2 周没有启动该应用程序就会触发该通知。我使用 Manager 类来处理应用本地通知的调度。
这是我目前的解决方案:
func applicationWillTerminate(_ application: UIApplication) {
NotificationManager.shared.schedule(notification)
}
但是,applicationWillTerminate 不会被调用 - 因此不会安排通知 - 如果应用在后台被终止(即从 Dock 上滑动)。
是否有任何解决方法?
我想到的一个解决方法是在应用进入后台时安排通知,然后在应用再次激活时调用removePendingNotificationRequests(),如下所示:
func applicationDidEnterBackground(_ application: UIApplication) {
NotificationManager.shared.schedule(notification)
}
func applicationDidBecomeActive(_ application: UIApplication) {
UNUserNotificationCenter.current().removePendingNotificationRequests(withIdentifiers: ["notification"])
}
问题在于,在我看来,它是一种浪费且次优的解决方案。有没有比安排这个通知更优雅的解决方案
【问题讨论】:
标签: ios swift notifications localnotification unusernotificationcenter