การรู้ว่าแอปพลิเคชันอยู่เบื้องหน้าหรือเบื้องหลังเมื่อใดมีความสำคัญเนื่องจากเป็นนักพัฒนา iOS เราจำเป็นต้องจัดการกับหลายเหตุการณ์ เช่น การดาวน์โหลดในเบื้องหลัง เหตุการณ์หากแอปมาที่พื้นหน้า
ที่นี่เราจะดูวิธีการตรวจสอบว่าแอปพลิเคชันอยู่ในพื้นหลังหรือเบื้องหน้า
เราจะใช้ศูนย์การแจ้งเตือนเพื่อการนั้น
หากต้องการอ่านเพิ่มเติม คุณสามารถอ้างอิงเอกสาร apple.
https://developer.apple.com/documentation/foundation/notificationcenter
กลไกการส่งการแจ้งเตือนที่ช่วยให้สามารถถ่ายทอดข้อมูลไปยังผู้สังเกตการณ์ที่ลงทะเบียนได้ เราจะเพิ่มผู้สังเกตการณ์เข้าไปเช่นเดียวกันและจะได้รับสาย
ขั้นตอนที่ 1 − เปิด Xcode → โครงการใหม่ → แอปพลิเคชั่นมุมมองเดียว → ตั้งชื่อมันว่า "เบื้องหน้าเบื้องหลัง"
ขั้นตอนที่ 2 − ใน viewDidLoad ให้สร้างวัตถุของศูนย์การแจ้งเตือน
ให้ notificationCenter =NotificationCenter.default
ขั้นตอนที่ 3 − เพิ่มผู้สังเกตการณ์สำหรับพื้นหลังและเบื้องหน้า
notificationCenter.addObserver(ตัวเอง ตัวเลือก:#selector(backgroundCall) ชื่อ:UIApplication.willResignActiveNotification วัตถุ:ไม่มี)notificationCenter.addObserver(ตัวเอง ตัวเลือก:#selector(foregroundCall) ชื่อ:UIApplication.didBecomeActiveNotification วัตถุ:ไม่มี )
ขั้นตอนที่ 4 − ใช้วิธีการเลือก
@objc func frontCall() { print("แอปย้ายไปที่พื้นหน้า")}@objc func backgroundCall() { พิมพ์ ("แอปย้ายไปที่พื้นหลัง!")}
ขั้นตอนที่ 5 − วางเบรกพอยต์และเรียกใช้แอปพลิเคชัน
กรอกโค้ด
<ก่อนหน้า>นำเข้า UIKitclass ViewController:UIViewController { แทนที่ func viewDidLoad () { super.viewDidLoad () ให้ alertCenter =NotificationCenter.default alertCenter.addObserver (ตัวเอง, ตัวเลือก:#selector (backgroundCall), ชื่อ:UIApplication.willResignActiveNotification วัตถุ:ไม่มี) alertCenter.addObserver (ตัวเอง ตัวเลือก:#selector (foregroundCall) ชื่อ:UIApplication.didBecomeActiveNotification วัตถุ:ไม่มี) } @objc func frontCall () { พิมพ์ ("แอปย้ายไปที่เบื้องหน้า") } @objc func backgroundCall () { พิมพ์ ("ย้ายแอปไปที่พื้นหลังแล้ว!") }}