记下应用程序关闭或进入后台的时间

Write down the time when app is closed or enters backgound

我希望我的应用记录用户关闭或进入后台的时间,并在下次打开时显示。我有以下代码,但是它不起作用。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
     _ = NSUserDefaults.standardUserDefaults().setObject(NSDate(), forKey: "lastTime")
}

func applicationWillResignActive(application: UIApplication) {
        let terminateTime = NSDate()
        let defaults = NSUserDefaults.standardUserDefaults()
        defaults.setObject(terminateTime, forKey: "lastTime")
        defaults.synchronize()
}

谢谢。

  • 创建一个变量lastTime

    var lastTime : NSDate!
    
  • application:didFinishLaunchingWithOptions:注册一个默认值并读取:

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
      let defaults = NSUserDefaults.standardUserDefaults()
      let defaultValues = ["lastTime" : NSDate()]
      defaults.registerDefaults(defaultValues)
    
      lastTime = NSUserDefaults.standardUserDefaults().objectForKey("lastTime") as! NSDate
      return true
    }
    

    默认值只考虑第一个运行。

  • applicationWillResignActive:中保存:

    func applicationWillResignActive(application: UIApplication) {
      let terminateTime = NSDate()
      let defaults = NSUserDefaults.standardUserDefaults()
      defaults.setObject(terminateTime, forKey: "lastTime")
    }
    

    synchronize()不需要