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

จะตรวจสอบได้อย่างไรว่าแอปพลิเคชั่น iOS อยู่ในพื้นหลังหรือเบื้องหน้า?


ในการตรวจสอบว่าแอปพลิเคชัน 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 ของแอปพลิเคชันของเรา เราจะได้ผลลัพธ์ดังต่อไปนี้:

จะตรวจสอบได้อย่างไรว่าแอปพลิเคชั่น iOS อยู่ในพื้นหลังหรือเบื้องหน้า?