เพิ่มประสิทธิภาพตำแหน่งสำหรับแบตเตอรี่

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

ขีดจำกัดตำแหน่งในเบื้องหลังใน Android 8.0 ทำให้เกิดการเปลี่ยนแปลงต่อไปนี้

  • ระบบควบคุมการรวบรวมตําแหน่งในเบื้องหลังและคํานวณตําแหน่ง ที่แสดงเพียงไม่กี่ครั้งต่อชั่วโมง
  • การสแกนหา Wi-Fi จะระมัดระวังมากกว่า และระบบจะไม่คำนวณการอัปเดตตำแหน่งเมื่อ อุปกรณ์จะยังเชื่อมต่อกับจุดเข้าใช้งานแบบคงที่เดิม
  • การตอบสนองของการกำหนดเขตพื้นที่เสมือนเปลี่ยนจาก 10 วินาทีเป็นประมาณ 2 นาที การเปลี่ยนแปลงนี้ปรับปรุงประสิทธิภาพของแบตเตอรี่อย่างเห็นได้ชัดถึง 10 เท่า บนอุปกรณ์บางอย่าง

หน้านี้จะถือว่าคุณกำลังใช้บริการตำแหน่งของ Google API ซึ่งให้ความแม่นยำและ วางภาระงานแบตเตอรี่น้อยกว่าตำแหน่งของเฟรมเวิร์ก API ใน โดยเฉพาะอย่างยิ่ง หน้านี้จะถือว่าคุ้นเคยกับผู้ให้บริการ Fused Location API ซึ่งรวมสัญญาณจาก GPS, Wi-Fi และเครือข่ายมือถือ ตลอดจน ตัวตรวจวัดความเร่ง เครื่องวัดการหมุน เครื่องวัดค่าความเข้มข้นของสนามแม่เหล็ก และเซ็นเซอร์อื่นๆ คุณควรใช้ คุ้นเคยกับการกำหนดเขตพื้นที่เสมือน API ซึ่งสร้างขึ้น บน Fused Location Provider API และได้รับการเพิ่มประสิทธิภาพสำหรับแบตเตอรี่ ด้านประสิทธิภาพ

ทำความเข้าใจการใช้แบตเตอรี่จนหมด

การรวบรวมตำแหน่งและการใช้พลังงานแบตเตอรี่เกี่ยวข้องโดยตรงกับสิ่งต่อไปนี้ ในด้านต่างๆ:

  • ความแม่นยำ: ความแม่นยำของข้อมูลตำแหน่ง โดยทั่วไป ยิ่ง ยิ่งมีความแม่นยำ ยิ่งแบตเตอรี่หมดเร็ว
  • ความถี่: ความถี่ที่มีการคำนวณตำแหน่ง ยิ่งตำแหน่งที่แสดงบ่อย เวลาประมวลผล ยิ่งใช้แบตเตอรี่มาก
  • เวลาในการตอบสนอง: ระบบส่งข้อมูลตำแหน่งรวดเร็วเพียงใด เวลาในการตอบสนองที่ต่ำมักจะต้องใช้ แบตเตอรี่มากขึ้น

ความถูกต้อง

คุณสามารถระบุความแม่นยำของตำแหน่งได้โดยใช้ setPriority() โดยส่งหนึ่งในค่าต่อไปนี้เป็นอาร์กิวเมนต์

  • PRIORITY_HIGH_ACCURACY ให้ตำแหน่งที่แม่นยำที่สุดเท่าที่จะเป็นไปได้ ซึ่งคำนวณโดยใช้ อินพุตจำนวนมากเท่าที่จำเป็น (เปิดใช้งาน GPS, Wi-Fi และเซลล์ และใช้ ความหลากหลาย เซ็นเซอร์) และอาจทำให้เกิด แบตเตอรี่หมดเร็ว
  • PRIORITY_BALANCED_POWER_ACCURACY ให้ตำแหน่งที่แม่นยำและเพิ่มประสิทธิภาพสำหรับการใช้พลังงาน ไม่ค่อยได้ใช้ GPS โดยทั่วไปจะใช้ Wi-Fi และข้อมูลเครือข่ายมือถือร่วมกันเพื่อประมวลผล ตำแหน่งของอุปกรณ์
  • PRIORITY_LOW_POWER ซึ่งอาศัยเสาสัญญาณมือถือเป็นสำคัญ และหลีกเลี่ยงอินพุต GPS และ Wi-Fi ความแม่นยำคร่าวๆ (ระดับเมือง) โดยทำให้แบตเตอรี่หมดเร็ว
  • PRIORITY_NO_POWER รับตำแหน่งแบบติดตัวจากแอปอื่นๆ ที่ตำแหน่งนั้นมี ได้รับการคำนวณเรียบร้อยแล้ว

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

ความถี่

คุณสามารถระบุความถี่ของตำแหน่งได้โดยใช้ 2 วิธีดังนี้

  • ใช้เมนู setinterval() เพื่อระบุช่วงเวลาที่คำนวณตำแหน่งสำหรับแอป
  • ใช้เมนู setFastestInterval() เพื่อระบุช่วงเวลาที่ตำแหน่งที่คำนวณสำหรับแอปอื่นๆ ที่ส่งไปยังแอปของคุณ

คุณควรส่งค่าที่เป็นไปได้มากที่สุดเมื่อใช้ setInterval() นี่คือ โดยเฉพาะอย่างยิ่ง เมื่อรวบรวมตำแหน่งในเบื้องหลัง ซึ่งมักเป็นแหล่งที่มาของ แบตเตอรี่หมดเร็วเกินไป การใช้ช่วงเวลา 2-3 วินาทีควรสงวนไว้สำหรับ กรณีการใช้งานเบื้องหน้า ขีดจำกัดตำแหน่งในเบื้องหลังที่นำมาใช้ใน Android 8.0 บังคับใช้กลยุทธ์เหล่านี้ แต่แอปของคุณควรพยายามบังคับใช้กับ Android อุปกรณ์ 7.0 หรือต่ำกว่า

ตอบสนองช้า

คุณสามารถระบุเวลาในการตอบสนองได้โดยใช้ setMaxWaitTime() โดยปกติจะส่งค่าที่มากกว่าช่วงเวลาหลายเท่า ที่ระบุไว้ใน setInterval() การตั้งค่านี้จะทำให้การนำส่งตำแหน่งล่าช้า และการอัปเดตตำแหน่งหลายครั้งอาจ ส่งเป็นชุดได้ การเปลี่ยนแปลงทั้ง 2 รายการนี้ช่วยลดการใช้แบตเตอรี่ให้เหลือน้อยที่สุด

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

เมื่อใช้เขตพื้นที่เสมือน แอปควรส่งผ่านค่าขนาดใหญ่ไปยัง setNotificationResponsiveness() เพื่อรักษาพลังงาน แนะนำให้ใช้ค่า 5 นาทีขึ้นไป

กรณีการใช้งานตามสถานที่

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

การอัปเดตที่ปรากฏต่อผู้ใช้หรือการอัปเดตในเบื้องหน้า

ตัวอย่าง: แอปแผนที่ที่ต้องอัปเดตบ่อยครั้งและแม่นยำโดยมีค่าต่ำมาก เวลาในการตอบสนอง การอัปเดตทั้งหมดจะเกิดขึ้นในเบื้องหน้า กล่าวคือผู้ใช้เริ่มกิจกรรม จะใช้ข้อมูลตำแหน่ง และหยุดกิจกรรมในเวลาอันสั้น

ใช้เมนู setPriority() ที่มีค่าเป็น PRIORITY_HIGH_ACCURACY หรือ PRIORITY_BALANCED_POWER_ACCURACY

ช่วงเวลาที่ระบุไว้ในช่วง setInterval() ขึ้นอยู่กับกรณีการใช้งาน สำหรับสถานการณ์แบบเรียลไทม์ ให้กำหนดค่าเป็นน้อย วินาที; ไม่เช่นนั้น ให้จำกัดให้เหลือ 2-3 นาที (ประมาณ 2 นาทีหรือ ขอแนะนำให้ใช้แบตเตอรี่มากกว่านี้เพื่อลดการใช้แบตเตอรี่)

การทราบตำแหน่งของอุปกรณ์

ตัวอย่างเช่น แอปสภาพอากาศต้องการทราบตำแหน่งของอุปกรณ์

ใช้เมนู getLastLocation() ซึ่งจะแสดงตำแหน่งล่าสุดที่พร้อมใช้งาน (ซึ่งเกิดขึ้นไม่บ่อยนัก กรณีต่างๆ อาจเป็นค่าว่าง) วิธีการนี้มอบวิธีง่ายๆ ในการค้นหาตำแหน่ง จะไม่มีค่าใช้จ่ายที่เกี่ยวข้องกับการขอการอัปเดตตำแหน่ง ใช้ ร่วมกับ isLocationAvailable() ซึ่งแสดงผล true เมื่อสถานที่แสดงผลโดย getLastLocation() เป็นปัจจุบันพอสมควร

การเริ่มอัปเดตเมื่อผู้ใช้อยู่ในสถานที่ที่ระบุ

ตัวอย่าง: การขออัปเดตเมื่อผู้ใช้อยู่ในระยะที่กำหนดจาก ที่ทำงาน บ้าน หรือสถานที่อื่น

ใช้ Geofencing ร่วมกับ Fused การอัปเดตผู้ให้บริการตำแหน่ง ขอข้อมูลอัปเดตเมื่อแอปได้รับเขตพื้นที่เสมือน ทริกเกอร์การเข้าชม และนำการอัปเดตออกเมื่อแอปได้รับการออกจากเขตพื้นที่เสมือน ทริกเกอร์ วิธีนี้ช่วยให้มั่นใจได้ว่าแอปจะได้รับการอัปเดตตำแหน่งที่ละเอียดยิ่งขึ้นเฉพาะเมื่อ ผู้ใช้เข้าสู่พื้นที่ที่กำหนด

เวิร์กโฟลว์ทั่วไปในสถานการณ์นี้อาจรวมถึงการแสดงการแจ้งเตือน เมื่อเขตพื้นที่เสมือนเข้าสู่การเปลี่ยนฉาก และเริ่มกิจกรรมที่มี เพื่อขออัปเดตเมื่อผู้ใช้แตะการแจ้งเตือน

การเริ่มอัปเดตตามสถานะกิจกรรมของผู้ใช้

ตัวอย่าง: การขออัปเดตเฉพาะเมื่อผู้ใช้กำลังขับรถหรือขี่ จักรยาน

ใช้การจดจำกิจกรรม API ใน ร่วมกับการอัปเดตผู้ให้บริการ Fused Location ขอข้อมูลอัปเดตเมื่อ ระบบจะตรวจพบกิจกรรมเป้าหมาย และนำการอัปเดตออกเมื่อผู้ใช้หยุด ทำกิจกรรมดังกล่าว

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

การอัปเดตตำแหน่งในเบื้องหลังที่ใช้เวลานานซึ่งเชื่อมโยงกับพื้นที่ทางภูมิศาสตร์

ตัวอย่าง: ผู้ใช้ต้องการรับการแจ้งเตือนเมื่ออุปกรณ์อยู่ในบริเวณใกล้เคียง ของผู้ค้าปลีกรายหนึ่ง

นี่เป็นกรณีการใช้งานที่เหมาะสมสำหรับการกำหนดเขตพื้นที่เสมือน เนื่องจากกรณีการใช้งาน จะต้องมีตำแหน่งในเบื้องหลัง ให้ใช้ addGeofences(GeofencingRequest, PendingIntent)

คุณควรตั้งค่าตัวเลือกการกำหนดค่าต่อไปนี้

  • หากคุณกำลังติดตามการเปลี่ยนเมื่อไม่อยู่ ให้ใช้ setLoiteringDelay() การส่งค่าโดยประมาณไม่เกินห้านาที

  • ใช้เมนู setNotificationResponsiveness() การส่งผ่านค่าประมาณ 5 นาที อย่างไรก็ตาม ให้พิจารณาใช้ค่า ประมาณ 10 นาทีหากแอปของคุณสามารถจัดการการหน่วงเวลาเพิ่มเติม การตอบสนองอย่างรวดเร็ว

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

การอัปเดตตำแหน่งในเบื้องหลังที่ใช้เวลานานโดยไม่มีคอมโพเนนต์ของแอปที่มองเห็นได้

ตัวอย่าง: แอปที่ติดตามตำแหน่งแบบแฝง

ใช้เมนู setPriority() ที่มีเมธอด PRIORITY_NO_POWER หากเป็นไปได้ เพราะวิธีนี้ทำให้แทบไม่ต้องใช้แบตเตอรี่จนหมด หากใช้ ใช้ PRIORITY_NO_POWER ไม่ได้ โปรดใช้ PRIORITY_BALANCED_POWER_ACCURACY หรือ PRIORITY_LOW_POWER, แต่หลีกเลี่ยงการใช้ PRIORITY_HIGH_ACCURACY สำหรับงานพื้นหลังอย่างยั่งยืน เนื่องจากตัวเลือกนี้ระบายน้ำเป็นอย่างมาก แบตเตอรี่

ถ้าต้องการข้อมูลตำแหน่งเพิ่มเติม ให้ใช้ตำแหน่งแบบแพสซีฟโดยโทรไปที่ setFastestInterval() ที่มีค่าน้อยกว่าที่คุณส่งไปยัง setInterval() เมื่อใช้ร่วมกับ PRIORITY_NO_POWER ตำแหน่งแบบแพสซีฟสามารถนำส่งตำแหน่งตามโอกาสที่มีการคำนวณโดย แอปอื่นๆ ได้โดยไม่มีค่าใช้จ่ายเพิ่มเติม

ความถี่ปานกลางโดยเพิ่มเวลาในการตอบสนอง โดยใช้ setMaxWaitTime() ตัวอย่างเช่น หากคุณใช้เมธอด setinterval() ที่มีค่าเป็น ประมาณ 10 นาที คุณควรลองโทรหา setMaxWaitTime() ด้วย ค่าระหว่าง 30 ถึง 60 นาที เมื่อใช้ตัวเลือกเหล่านี้ ระบบจะคำนวณตำแหน่ง สำหรับแอปของคุณทุกๆ 10 นาทีโดยประมาณ แต่แอปเพิ่งตื่นเท่านั้น ทุกๆ 30 ถึง 60 นาที โดยมีข้อมูลตำแหน่งบางส่วนพร้อมใช้งานเป็นการอัปเดตแบบกลุ่ม ช่วงเวลานี้ แนวทางนี้จะแลกกับเวลาในการตอบสนองเพื่อให้ได้ข้อมูลที่ใช้งานได้มากขึ้นและแบตเตอรี่ที่ดีขึ้น ด้านประสิทธิภาพ

การอัปเดตความแม่นยำสูงบ่อยครั้งขณะที่ผู้ใช้โต้ตอบกับแอปอื่นๆ

ตัวอย่าง: แอปนำทางหรือแอปฟิตเนสที่ยังคงทำงานต่อไปเมื่อผู้ใช้ จะปิดหน้าจอหรือเปิดแอปอื่น

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

แนวทางปฏิบัติแนะนำสำหรับตำแหน่ง

การนำแนวทางปฏิบัติแนะนำในส่วนนี้ไปใช้จะช่วยลดการใช้แบตเตอรี่ของ แอปของคุณ

นำการอัปเดตตำแหน่งออก

สาเหตุทั่วไปของการใช้แบตเตอรี่โดยไม่จำเป็นคือการถอดตำแหน่งออกไม่สำเร็จ เมื่อไม่จำเป็นต้องใช้แล้ว เหตุการณ์นี้อาจเกิดขึ้นได้ เช่น เมื่อ onStart() ของกิจกรรมหรือ วงจรการใช้งาน onResume() มีการเรียกไปยัง requestlocationUpdates() ที่ไม่มีการเรียกที่เกี่ยวข้องไปยัง removeLocationUpdates() ใน onPause() หรือ onStop() วิธีตลอดอายุการใช้งาน

คุณสามารถใช้คอมโพเนนต์ที่คำนึงถึงวงจรเพื่อจัดการวงจรที่ดีขึ้น กิจกรรมในแอปของคุณ โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการจัดการวงจรด้วย คอมโพเนนต์ Lifecycle-Aware

ตั้งค่าระยะหมดเวลา

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

สําหรับคําขอผู้ให้บริการ Fused Location ให้เพิ่มระยะหมดเวลาด้วยการโทร setExpirationDuration() ซึ่งได้รับพารามิเตอร์ที่แสดงเวลาเป็นมิลลิวินาทีตั้งแต่ มีการเรียกเมธอดครั้งล่าสุด คุณยังเพิ่มระยะหมดเวลาด้วยการโทรได้ด้วย setExpirationTime() ซึ่งได้รับพารามิเตอร์ที่แสดงเวลาหมดอายุเป็นมิลลิวินาที นับตั้งแต่การเปิดเครื่องครั้งล่าสุด

หากต้องการเพิ่มระยะหมดเวลาในคำขอตำแหน่งเขตพื้นที่เสมือน ให้เรียกใช้ setExpirationDuration()

คำขอแบบกลุ่ม

สำหรับ Use Case ที่ไม่ใช่ที่ทำงานอยู่เบื้องหน้าทั้งหมด ให้จัดกลุ่มคำขอหลายรายการไว้ด้วยกัน คุณสามารถใช้ เวลา setInterval() เพื่อระบุช่วงเวลาที่คุณต้องการให้คำนวณตำแหน่ง จากนั้นใช้ setMaxWaitTime() เพื่อกำหนดระยะเวลาที่นำส่งไปยังแอปของคุณ ค่าที่ส่งไปยังเมธอด setMaxWaitTime() ควรเป็นจำนวนทวีคูณของค่าดังกล่าว ที่ส่งไปยังเมธอด setInterval() ตัวอย่างเช่น โปรดพิจารณาข้อมูลต่อไปนี้ คำขอตำแหน่ง:

Kotlin

val request = LocationRequest()
request.setInterval(10 * 60 * 1000)
request.setMaxWaitTime(60 * 60 * 1000)

Java

LocationRequest request = new LocationRequest();
request.setInterval(10 * 60 * 1000);
request.setMaxWaitTime(60 * 60 * 1000);

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

ใช้การอัปเดตตำแหน่งแบบแพสซีฟ

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

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

Kotlin

val request = LocationRequest()
request.setInterval(15 * 60 * 1000)
request.setFastestInterval(2 * 60 * 1000)

Java

LocationRequest request = new LocationRequest();
request.setInterval(15 * 60 * 1000);
request.setFastestInterval(2 * 60 * 1000);

ในตัวอย่างก่อนหน้านี้ ตำแหน่งจะคำนวณสำหรับแอปของคุณประมาณทุกๆ 15 นาที หากแอปอื่นๆ ขอตำแหน่ง ข้อมูลจะพร้อมใช้งานสำหรับแอปของคุณ ที่ช่วงเวลาสูงสุด 2 นาที

ขณะใช้งานตำแหน่งอยู่เฉยๆ จะทำให้แบตเตอรี่หมดเร็ว โปรดระมัดระวังเป็นพิเศษ กรณีที่การรับข้อมูลตำแหน่งทำให้ CPU หรือ I/O มีราคาแพง การดำเนินงาน ช่วงเวลาที่ระบุใน เพื่อลดค่าใช้จ่ายแบตเตอรี่ setFastestInterval() ไม่ควรมีขนาดเล็กเกินไป

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