Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> IOS

จะตรวจสอบได้อย่างไรว่าโปรแกรม iOS อยู่เบื้องหน้าหรือเบื้องหลัง?


การรู้ว่าแอปพลิเคชันอยู่เบื้องหน้าหรือเบื้องหลังเมื่อใดมีความสำคัญเนื่องจากเป็นนักพัฒนา 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 () { พิมพ์ ("ย้ายแอปไปที่พื้นหลังแล้ว!") }}