Wake Lock แบบต่อเนื่องบางส่วน

การล็อกการตื่นบางส่วนเป็นกลไกใน PowerManager API ที่ช่วยให้นักพัฒนาแอปสามารถทำให้ CPU ทำงานต่อไปได้หลังจากที่จอแสดงผลของอุปกรณ์ปิดลง (ไม่ว่าจะเกิดจากระบบหมดเวลาหรือผู้ใช้กดปุ่มเปิด/ปิด) แอปของคุณจะรับการล็อกจากการตื่นบางส่วนโดยการเรียกใช้ acquire() ด้วย Flag PARTIAL_WAKE_LOCK หรือใช้ API อื่นๆ ที่ได้รับสิทธิ์การล็อกจากการตื่น การล็อกการตื่นบางส่วนจะค้างหากมีการล็อกไว้เป็นเวลานานขณะที่แอปของคุณทำงานอยู่เบื้องหลัง (ผู้ใช้ไม่เห็นส่วนใดของแอป) เงื่อนไขนี้จะทำให้แบตเตอรี่ของอุปกรณ์หมดเร็วเนื่องจากป้องกันไม่ให้อุปกรณ์เข้าสู่สถานะพลังงานต่ำ คุณควรใช้การล็อกการตื่นบางส่วนเฉพาะเมื่อจำเป็นเท่านั้น และปล่อยออกทันทีที่ไม่จำเป็นแล้ว

หากแอปของคุณมีการล็อกการตื่นบางส่วนค้างอยู่ คุณสามารถใช้คำแนะนำในหน้านี้เพื่อวินิจฉัยและแก้ไขปัญหา

ตรวจหาปัญหา

คุณอาจไม่ทราบเสมอไปว่าการล็อกบางส่วนของแอปค้างอยู่ หากคุณเผยแพร่แอปแล้ว Android Vitals จะช่วยให้คุณทราบถึงปัญหา

Android Vitals

Android Vitals ช่วยปรับปรุงประสิทธิภาพของแอปได้โดยแจ้งเตือนคุณผ่าน Play Console เมื่อแอปแสดงการล็อกการตื่นบางส่วนค้าง Android Vitals จะรายงานว่าการทำงานขณะล็อกอยู่บ้างติดขัดเมื่อเกิดการทำงานขณะล็อกอยู่บ้างนานอย่างน้อย 1 ชั่วโมงขณะอยู่ในเบื้องหลังภายในระยะเวลา 24 ชั่วโมง

จํานวนเซสชันแบตเตอรี่ที่แสดงคือข้อมูลรวมของผู้ใช้ทั้งหมดที่วัดของแอป ดูข้อมูลเกี่ยวกับวิธีที่ Google Play รวบรวมข้อมูล Android Vitals ได้ที่เอกสารประกอบของ Play Console

เมื่อทราบว่าแอปของคุณล็อกการตื่นบางส่วนค้างอยู่ ขั้นตอนถัดไปคือการแก้ไขปัญหา

แก้ไขปัญหา

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

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

หลังจากแก้ไขปัญหาในโค้ดแล้ว คุณสามารถยืนยันการแก้ไขได้โดยใช้เครื่องมือแก้ไขข้อบกพร่องการล็อกการปลุกในเครื่อง

ดูเพิ่มเติม