Wake Lock บางส่วนเป็นกลไกใน API ของ
PowerManager
ที่ช่วยให้นักพัฒนาแอปให้ CPU ทำงานต่อไปได้หลังจากที่จอแสดงผลของอุปกรณ์ปิด
(ไม่ว่าจะเกิดจากระบบหมดเวลาหรือผู้ใช้กดปุ่มเปิด/ปิด) แอปของคุณจะได้รับ Wake Lock บางส่วนโดยการเรียกใช้
acquire()
ด้วยแฟล็ก
PARTIAL_WAKE_LOCK
หรือโดยใช้API อื่นๆ ที่ได้รับ Wake Lock
Wake Lock บางส่วนจะค้างหากมีการถือไว้นานขณะที่แอปของคุณทำงานอยู่เบื้องหลัง (ผู้ใช้ไม่เห็นส่วนใดของแอป) เงื่อนไขนี้จะทำให้แบตเตอรี่ของอุปกรณ์หมดเร็วขึ้นเนื่องจากป้องกันไม่ให้อุปกรณ์เข้าสู่สถานะที่ใช้พลังงานน้อยลง
ควรใช้ Wake Lock บางส่วนเมื่อจำเป็นเท่านั้น และควรปล่อยทันทีที่ไม่มีความจำเป็นอีกต่อไป
หากแอปมี Wake Lock บางส่วนที่ค้างอยู่ คุณสามารถใช้คำแนะนำในหน้านี้ เพื่อวินิจฉัยและแก้ไขปัญหาได้
ตรวจหาปัญหา
คุณอาจไม่ทราบเสมอไปว่าการล็อกบางส่วนของแอปค้างอยู่ หากเผยแพร่แอปแล้ว Android Vitals จะช่วยให้คุณทราบปัญหาได้
Android Vitals
Android Vitals ช่วยปรับปรุงประสิทธิภาพของแอปได้โดยการแจ้งเตือนคุณผ่าน Play Console เมื่อแอปแสดงการล็อกปลุกบางส่วนที่ค้างอยู่ Android Vitals รายงานการทำงานขณะล็อกบางส่วน ว่าติดขัดเมื่อมีการทำงานขณะล็อกบางส่วน เป็นเวลา 1 ชั่วโมงอย่างน้อย 1 ครั้งขณะอยู่ในเบื้องหลังในช่วงระยะเวลา 24 ชั่วโมง
จำนวนเซสชันแบตเตอรี่ที่แสดงคือค่ารวมของผู้ใช้ทั้งหมดที่วัดได้ ของแอป ดูข้อมูลเกี่ยวกับวิธีที่ Google Play รวบรวมข้อมูล Android Vitals ได้ที่เอกสารประกอบของ Play Console
เมื่อทราบว่าแอปมี Wake Lock บางส่วนที่ค้างอยู่ ขั้นตอนถัดไปคือการแก้ไขปัญหา
แก้ไขปัญหา
เนื่องจาก Wake Lock อาจทำให้แบตเตอรี่ของอุปกรณ์หมด คุณจึงไม่ควรใช้ Wake Lock หากมีทางเลือกอื่น เอกสารประกอบเลือก API ที่เหมาะสมเพื่อเปิดหน้าจออุปกรณ์ค้างไว้ จะช่วยคุณค้นหาโซลูชันที่ดีที่สุดสำหรับแอป
หากจำเป็นต้องใช้ Wake Lock ให้ทำตามแนวทางปฏิบัติแนะนำสำหรับ Wake Lock เพื่อให้มั่นใจว่า Wake Lock จะไม่ส่งผลต่อประสิทธิภาพของอุปกรณ์ โดยเฉพาะอย่างยิ่ง โปรดตรวจสอบว่าได้ปล่อยอุปกรณ์ทุกเครื่องที่คุณได้รับ และปลดล็อกโดยเร็วที่สุด
หลังจากแก้ไขปัญหาในโค้ดแล้ว คุณสามารถยืนยันการแก้ไขได้โดยใช้เครื่องมือแก้ไขข้อบกพร่องของ Wake Lock ในเครื่อง
ดูเพิ่มเติม
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- เฟรมที่ค้าง
- เรียกใช้การทดสอบประสิทธิภาพในการผสานรวมอย่างต่อเนื่อง
- สร้างและวัดโปรไฟล์พื้นฐานโดยไม่ต้องใช้ Macrobenchmark