Swift Method สำหรับ Handler Application State

Ton Attapong
Seekster Development
2 min readMay 10, 2019

สำหรับ Application State ได้พูดถึงในบทความที่แล้ว สำหรับคนไหนยังไม่ได้อ่านเข้าไปอ่านได้ที่ลิ้งด้านล่างเลยนะครับ ส่วนบทความนี้เกี่ยวกับ Method ที่ใช้สำหรับ Handler Application State

ลิ้งสำหรับบทความที่แล้วเกี่ยวกับ Application State

หลังจากที่รู้เรื่อง Application State แล้ว เรามามาดูกันว่าแต่ละ Method ทำงานตอนไหนและอยู่ในสถานะอะไร

ศึกษาก่อนทดลอง

didFinishLaunchingWithOptions

  • โหลดแอปขึ้นมาครั้งแรก หรือหลังจากเคลียแอปไปแล้ว แล้วเข้าแอป ปล.หลังจากกดปุ่ม Home แล้วกดเข้าแอปอีกครั้ง จะไม่เข้า Method นี้
  • สถานะ Inactive

applicationDidBecomeActive

  • เปลี่ยน สถานะจาก Background หรือ Inactive เป็น Active ปล.เข้าแอปมาครั้งแรกหรือหลังจากกดปุ่ม Home แล้วกดเข้าแอปอีกครั้ง
  • สถานะ Active

applicationWillResignActive

  • กำลังจะเปลี่ยนสถานะจาก Inactive หรือ Active ไปเป็น Background
  • สถานะ Active

applicationDidEnterBackground

  • เปลี่ยนสถานะจาก Inactive หรือ Active มาเป็น Background ปล.เมื่อเรากดปุ่ม Home นั่นเอง
  • สถานะ Background

applicationWillEnterForeground

  • กำลังจะเปลี่ยนสถานะจาก Background ไปเป็น Active ปล.หลังจากกดปุ่ม Home แล้วกดเข้าแอปอีกครั้ง
  • สถานะ Background

applicationWillTerminate

  • เมื่อทำการเคลียแอปทิ้ง
  • สถานะ Background

ทดสอบ Method ต่างๆ

  1. ทดลองเปิดแอป

สรุป Method ที่ทำงานได้แก่

  • didFinishLaunchingWithOptions และ State: Inactive
  • applicationDidBecomeActive และ State: Active

2. ทดลองกดปุ่ม Home

สรุป Method ที่ทำงานได้แก่

  • applicationWillResignActive และ State: Active
  • applicationDidEnterBackground และ State: Background

3. ทดลองเข้าใหม่อีกรอบ

สรุป Method ที่ทำงานได้แก่

  • applicationWillEnterForeground และ State: Background
  • applicationDidBecomeActive และ State: Active
  • ปล. สังเกตว่าเมื่อเข้ามาใหม่อีกรอบจะไม่เข้า didFinishLaunchingWithOptions

4. ทดลองเคลียร์แอปทิ้ง

สรุป Method ที่ทำงานได้แก่

  • applicationWillTerminate และ State: Background

จบแล้วนะครับสำหรับ Application State และ Method ที่ Handler หวังว่าจะเป็นประโยชน์กับทุกคน หากมีข้อผิดพลาดประการใดต้องขออภัยด้วยนะครับ
สำหรับใครที่มีข้อสงสัยหรือไม่เข้าใจอันไหนสอบถามได้นะครับ

--

--