应用生命周期事件处理

今天的话题是关于Apps的生命周期的,当我们创建一个新项目时,在Appelegate中编写了五个主要事件处理程序。

  func application(_ application:UIApplication,didFinishLaunchingWithOptions launchOptions:[NSObject:AnyObject]?)->布尔{ 
  //应用程序启动后进行自定义的替代点。 
 返回真 
  } 
  func applicationWillResignActive(_ application:UIApplication){ 
 打印(“ \(#功能)”) 
  //当应用程序即将从活动状态变为非活动状态时发送。 对于某些类型的临时中断(例如打来的电话或SMS消息),或者当用户退出应用程序并开始过渡到后台状态时,可能会发生这种情况。 
  //使用此方法可以暂停正在进行的任务,禁用计时器并使图形渲染回调无效。 游戏应使用此方法暂停游戏。 
  } 
  func applicationDidEnterBackground(_ application:UIApplication){ 
 打印(“ \(#功能)”) 
  //使用此方法释放共享资源,保存用户数据,使计时器无效以及存储足够的应用程序状态信息,以防您的应用程序在以后终止时恢复到当前状态。 
  //如果您的应用程序支持后台执行,则在用户退出时将调用此方法,而不是applicationWillTerminate:。 
  } 
  func applicationWillEnterForeground(_ application:UIApplication){ 
 打印(“ \(#功能)”) 
  //作为从后台到活动状态的过渡的一部分调用; 在这里,您可以撤消输入背景时所做的许多更改。 
  } 
  func applicationDidBecomeActive(_应用程序:UIApplication){ 
 打印(“ \(#功能)”) 
  //重新启动应用程序处于非活动状态时已暂停(或尚未启动)的所有任务。 如果该应用程序以前在后台运行,则可以选择刷新用户界面。 
  } 
  func applicationWillTerminate(_ application:UIApplication){ 
 打印(“ \(#功能)”) 
  //在应用程序即将终止时调用。 如果合适,保存数据。 另请参阅applicationDidEnterBackground:。 
  } 

我将通过使用NotificationCenter方法编写一些代码来监视“ ApplicationDidEnterBackground”和“ ApplicationDidBecomeActive”,我想做的是计算应用程序进入后台的次数以及回到前台的次数,何时应用程序转到后台,中间标签的值将减为1,当它回到最前面时加2,以下是我的代码,我写了一些注释来解释这些代码的作用。

 导入UIKit 
 类ViewController:UIViewController { 
  @IBOutlet弱var goBackCount:UILabel! 
  @IBOutlet弱var pracCount:UILabel! 
  @IBOutlet弱var goFrontCount:UILabel! 
  func goToBack(){ 
 打印(“ TestTestTest”) 
  goBackCount.text = String(Int(goBackCount.text!)!+ 1)//转到后台计数器+1 
  pracCount.text = String(Int(goBackCount.text!)!* -1 + Int(goFrontCount.text!)!* 2)//计算重新启动 
  } 
  func goBackFront(){ 
  goFrontCount.text = String(Int(goFrontCount.text!)!+ 1)//转到前台+1 
  pracCount.text = String(Int(goBackCount.text!)!* -1 + Int(goFrontCount.text!)!* 2)//计算结果 
  } 
 覆盖func viewDidLoad(){ 
  super.viewDidLoad() 
  NotificationCenter.default.addObserver(自身,选择器:#selector(ViewController.goToBack),名称:Notification.Name.UIApplicationDidEnterBackground,对象:nil)//当应用程序进入后台时发送通知 
  NotificationCenter.default.addObserver(自身,选择器:#selector(ViewController.goBackFront),名称:Notification.Name.UIApplicationDidBecomeActive,对象:nil)//当应用程序进入后台时发送通知 
  goBackCount.text = String(0)//设置计数器的初始值 
  goFrontCount.text = String(0)//设置计数器的初始值 
  pracCount.text = String(0)//设置计数器的初始值 
  } 
 覆盖func didReceiveMemoryWarning(){ 
  super.didReceiveMemoryWarning() 
  //处理所有可以重新创建的资源。 
  } 
  } 

如果要查看完整的项目,可以遵循我的github:

https://github.com/imbearfly/App-life-cycle.git

Interesting Posts