ในการตรวจสอบว่าแอปพลิเคชัน iOS อยู่ในพื้นหลังหรือเบื้องหน้า เราเพียงแค่ใช้แอปพลิเคชัน UIA เหมือนกับที่เราใช้ในการตรวจหาสิ่งต่างๆ มากมาย เช่น สถานะแบตเตอรี่ สถานะ ฯลฯ
มาดูกันว่าเราจะทำสิ่งนี้ได้อย่างไรในแอปพลิเคชันของเรา เราจะใช้ทรัพยากรที่ใช้ร่วมกันของแอปพลิเคชันของเราซึ่งจัดเก็บไว้ใน UIApplication.shared เราสามารถใช้ได้ดังที่แสดงด้านล่าง −
print(UIApplication.shared.applicationState)
สถานะ shared.application เป็น enum ของประเภท State ซึ่งประกอบด้วยสิ่งต่อไปนี้ตามเอกสารของ Apple
public enum State : Int { case active case inactive case background }
กรณีที่ใช้งานหมายความว่าแอปพลิเคชันอยู่เบื้องหน้าและกำลังได้รับเหตุการณ์เช่นเหตุการณ์การสัมผัสหรือเหตุการณ์อื่นใดที่สามารถทำให้แอปพลิเคชันใช้งานได้
กรณีที่ไม่ใช้งานหมายความว่าแอปพลิเคชันกำลังทำงานอยู่เบื้องหน้าแต่ไม่ได้รับเหตุการณ์ใดๆ
พื้นหลังของเคสหมายความว่าแอปพลิเคชันกำลังทำงานในพื้นหลัง
เราสามารถใช้งานได้ตามความต้องการของเราดังที่แสดงด้านบน เรายังดำเนินการบางอย่างได้ขึ้นอยู่กับเงื่อนไข
let state = UIApplication.shared.applicationState if state == .active { print("I'm active") } else if state == .inactive { print("I'm inactive") } else if state == .background { print("I'm in background") }
เมื่อเราเรียกใช้ใน viewDidLoad ของแอปพลิเคชันของเรา เราจะได้ผลลัพธ์ดังต่อไปนี้: