การใช้เครือข่ายมือถือในเบื้องหลังมากเกินไป

เมื่อแอปเชื่อมต่อกับเครือข่ายมือถือในเบื้องหลัง แอปจะปลุก CPU และเปิดวิทยุ การทำเช่นนี้ ซ้ำๆ อาจทำให้แบตเตอรี่ของอุปกรณ์หมด ระบบจะถือว่าแอปทำงานอยู่เบื้องหลังหากอยู่ในสถานะ PROCESS_STATE_BACKGROUND หรือ PROCESS_STATE_CACHED

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

ตรวจหาปัญหา

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

Android Vitals

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

Android Vitals จะพิจารณาว่าการใช้เครือข่ายในเบื้องหลังมากเกินไปเมื่อแอป ส่งและรับข้อมูลรวมกันทั้งหมด 50 MB ต่อวันขณะทำงานอยู่เบื้องหลัง ใน Play Console คุณสามารถตรวจสอบเปอร์เซ็นต์ของเซสชันแบตเตอรี่ ที่แสดงลักษณะการทำงานนี้ได้

คำจำกัดความของเซสชันแบตเตอรี่จะขึ้นอยู่กับเวอร์ชันของแพลตฟอร์ม

  • ใน Android 10 เซสชันแบตเตอรี่เป็นการรวมรายงานแบตเตอรี่ทั้งหมดที่ได้รับภายในระยะเวลา 24 ชั่วโมง รายงานแบตเตอรี่หมายถึงช่วงเวลาระหว่างการชาร์จแบตเตอรี่ 2 ครั้งจากต่ำกว่า 20% ถึงมากกว่า 80% หรือจากระดับการชาร์จใดก็ตามถึง 100%
  • ใน Android 11 เซสชันแบตเตอรี่คือระยะเวลา 24 ชั่วโมงแบบคงที่

ดูข้อมูลเกี่ยวกับวิธีที่ Google Play รวบรวมข้อมูล Android Vitals ได้ในเอกสารประกอบของ Play Console

ตรวจสอบพฤติกรรมการใช้งานเครือข่ายมือถือ

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

ดูข้อมูลเกี่ยวกับกลไกการใช้ Battery Historian ได้ที่ คำแนะนำเกี่ยวกับ Batterystats และ Battery Historian

ลดการใช้เครือข่ายมือถือ

คุณสามารถย้ายการใช้เครือข่ายมือถือของแอปไปไว้ที่เบื้องหน้าเพื่อแจ้งเตือน ผู้ใช้ว่ากำลังดาวน์โหลดอยู่ และให้ตัวควบคุมแก่ผู้ใช้เพื่อหยุดชั่วคราวหรือหยุดการดาวน์โหลด โดยทำได้ด้วยการเรียก DownloadManager และตั้งค่า setNotificationVisibility(int) ตามความเหมาะสม