Tutorial: กดปุ่ม Back ที่เครื่อง 2 ครั้งเพื่อปิดแอพ
มีหลายคนที่ติดการใช้ปุ่ม Back บนโทรศัพท์ (หรือแท็บเล็ต) เพื่อย้อนกลับ และออกจากแอพ แม้ว่าบางที ก็ไม่ได้ตั้งใจจะออกจากแอพ แต่ก็เผลอไปกดปุ่ม Back เข้า แอพก็ปิดเลย
ใน Thunkable Community มีโพสต์เรื่องนี้ไว้ ผมเห็นว่าน่าจะมีประโยชน์ เลยถือโอกาสดัดแปลงโค้ด แล้วนำมาเล่าให้ฟังถึงหลักการทำงานเป็นภาษาไทย จะได้เข้าใจกันง่ายๆ ครับ
เริ่มแรก เราต้องใช้คอมโพเนนต์ 2 อย่าง คือ
ใน Thunkable Community มีโพสต์เรื่องนี้ไว้ ผมเห็นว่าน่าจะมีประโยชน์ เลยถือโอกาสดัดแปลงโค้ด แล้วนำมาเล่าให้ฟังถึงหลักการทำงานเป็นภาษาไทย จะได้เข้าใจกันง่ายๆ ครับ
เริ่มแรก เราต้องใช้คอมโพเนนต์ 2 อย่าง คือ
- Clock สำหรับจับเวลา
- Notifier สำหรับแสดงข้อความแจ้งเตือน
ส่วนของ Code จะเป็นดังนี้
ในตอนเริ่มต้น อีเวนต์ Screen Initialize จะทำงาน แล้วจะสั่งให้ Clock ยังไม่ต้องจับเวลา แต่ก็ตั้งเวลาเอาไว้ 5 วินาที
นอกจากนี้ ยังมีการสร้างตัวแปร Global ไว้หนึ่งตัว เพื่อบันทึกสถานะว่ามีการกด Back หรือยัง ดังนั้น จึงตั้งค่าเริ่มต้นให้เป็น False คือ ยังไม่มีการกด Back เลย
ทีนี้ เมื่อผู้ใช้กดปุ่ม Back บนเครื่อง ก็จะเกิดอีเวนต์ BackPressed ขึ้นมา ที่นี้เราก็จะสั่งให้ Clock เริ่มจับเวลา ที่เราต้องมีการจับเวลา ก็เพื่อให้แน่ใจว่า หากผู้ใช้กด Back ติดกัน 2 ครั้งภายในเวลา 5 วินาที นั่นหมายถึง ผู้ใช้ต้องการปิดแอพจริงๆ
พอ Clock เริ่มจับเวลา ต่อมา เราก็ใช้ If เพื่อตรวจสอบว่า นี่เป็นกด Back ครั้งแรก หรือครั้งที่ 2 โดยดูจากตัวแปร PressBack1Time ซึ่งหากเป็น false แสดงว่าเป็นการกดครั้งแรก ดังนั้น ก็จะแสดง Alert ให้ผู้ใช้ "กด Back อีกครั้งเพื่อปิดแอพ" รวมทั้งเปลี่ยนสถานะในตัวแปร PressBack1Time ให้เป็น True เพื่อบันทึกว่ามีการกด Back 1 ครั้งแล้ว
แต่หาก If ตรวจสอบค่าในตัวแปร PressBack1Time แล้วเป็น True ก็แสดงว่านี่เป็นการกด Back ครั้งที่ 2 เราก็จะสั่งปิดแอพ ด้วยคำสั่ง Close Application
ในส่วนของ Clock เมื่อครบเวลา 5 วินาทีที่ตั้งไว้ ก็จะเกิดอีเวนต์ Timer นั่นหมายความว่า ผู้ใช้กด Back ครั้งแรก แล้วเว้นห่าง 5 วินาทีไม่ยอมกด Back อีก เราก็จะรีเซตกลับไปเหมือนตอนที่ยังไม่กด Back นั่นคือ ให้ Clock หยุดจับเวลา และเปลี่ยนค่าตัวแปร PressBack1Time เป็น False นั่นคือ ถือว่ายังไม่มีการกด Back
หวังว่านี่จะมีประโยชน์นะครับ
ดัดแปลงมาจาก https://community.thunkable.com/t/android-phone-back-pressed-event-in-thunkable/251
Comments
Post a Comment