Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> iOS

วิธีปิดแอป iPhone ให้ถูกต้อง (Graceful Exit)

บางครั้งต้องการปิดแอปพลิเคชัน เช่น ไม่มีอินเทอร์เน็ต อยากปิดแอปทันที แต่ Apple ไม่สนับสนุนการปิดแอปด้วยโปรแกรม วิธีเดียวที่ถูกต้องคือกดปุ่ม Home เพื่อให้แอปเข้าสู่ Background และระบบจัดการหน่วยความจำอัตโนมัติ

วิธีอื่นๆ (ไม่แนะนำ)

  • exit(0) - จบโปรแกรมทันที แต่ Apple อาจ Reject แอป
  • NSThread.mainThread().exit() - เหมือนกัน
  • เรียก applicationWillTerminate เอง - ไม่ใช่วิธีที่ถูกต้อง

แนวทางที่ดีที่สุด

แสดง Alert แจ้งผู้ใช้ ให้กดปุ่ม Home เพื่อออกจากแอป เอง

let alert = UIAlertController(
    title: "ไม่สามารถเชื่อมต่ออินเทอร์เน็ต",
    message: "กรุณากดปุ่ม Home เพื่อปิดแอปพลิเคชัน",
    preferredStyle: .alert
)
alert.addAction(UIAlertAction(title: "ตกลง", style: .default))
present(alert, animated: true)

เหตุผลที่ Apple ไม่อนุญาต

  • iOS จัดการ Lifecycle เอง (Background, Suspend, Terminate)
  • การ Force Quit ทำให้ข้อมูลสูญหาย หรือประสบการณ์ผู้ใช้แย่
  • App Store Guidelines ห้ามใช้ exit() หรือ private API

สรุป: อย่าพยายามปิดแอปด้วยโค้ด ให้ออกแบบ UX ให้ผู้ใช้ออกจากแอปเอง หรือจัดการสถานะ Error อย่างเหมาะสม