0

我希望我的应用程序在进入后台或非活动模式几秒钟后安排本地通知。这是我在视图控制器中所做的,当应用程序从它进入后台模式时:

class HomeViewController: UITableViewController {
  override func viewDidLoad() {
    ...
    let notificationCenter:NSNotificationCenter = NSNotificationCenter.defaultCenter()
    notificationCenter.addObserver(self, selector: #selector(self.appMovedToBackground), name: UIApplicationWillResignActiveNotification, object: nil)
  }

  func appMovedToBackground() {
    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    for userInfo in appDelegate.userInfoNotificationPending {
        let localNotification = UILocalNotification()
        localNotification.userInfo = userInfo
        localNotification.soundName = UILocalNotificationDefaultSoundName
        localNotification.alertBody = userInfo["aps"]!["alert"] as? String
        localNotification.fireDate = nil
        UIApplication.sharedApplication().scheduleLocalNotification(localNotification)
        let time = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW), 2 * Int64(NSEC_PER_SEC))
        dispatch_after(time, dispatch_get_main_queue()) {
           UIApplication.sharedApplication().scheduleLocalNotification(localNotification)
           UIApplication.sharedApplication().applicationIconBadgeNumber += 1
        }
    }
  }
}

为什么它不起作用?didReceiveLocalNotification应用程序进入后台后立即调用应用程序委托中的方法。我在哪里犯错?

4

0 回答 0