应用生命周期事件处理
今天的话题是关于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