使用label檢驗通知

進入背景-1 進入前景+2

什麼是前景什麼又是背景呢

簡單說就是在程式畫面就是前景

你跳到畫面外的桌面就成為背景

我們直接來看程式

class ViewController: UIViewController {
@IBOutlet weak var showNumbers: UILabel!
var number = 0
func enterBackground(noti:Notification) {
number -= 1
showNumbers.text = "\(number)"
}
func enterForeground(noti:Notification) {
number += 2
showNumbers.text = "\(number)"
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
NotificationCenter.default.addObserver(self, selector:
#selector(ViewController.enterBackground(noti:)), name:
Notification.Name.UIApplicationDidEnterBackground, object: nil)
NotificationCenter.default.addObserver(self, selector:
#selector(ViewController.enterForeground(noti:)), name:
Notification.Name.UIApplicationWillEnterForeground, object: nil)
}

在viewdidload裡面先宣告事件

通知的對象就是自己

有兩個通知 差別在於時間 一個是進入背景enterBackground

每當進入背景時就會執行enterBackground 你就可以在這裡-1

另一個是enterForeground

每當進入前景時執行 你就可在此+2

相當簡單

最後有多測試一項就是我們常使用Home鍵點兩下狀態 到底是否有進入背景

在經過測試結果是否的 enterBackground並不會執行

那這狀態會執行哪段程式呢?

applicationWillTerminate

沒錯 就是照字面上的意思 home兩下通常就是你要刪除APP的狀態

所以Home兩下的狀態我們要寫在applicationWillTerminate

就醬

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.