แนวทางปฏิบัติแนะนำสำหรับการโต้ตอบกับแผนที่การนำทาง

หน้านี้อธิบายแนวทางปฏิบัติแนะนำในการโต้ตอบกับแผนที่การนำทางในแอป

ใช้ SupportNavigationFragment แทน NavigationView เมื่อเป็นไปได้

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

หากใช้ NavigationView ให้ใช้การจัดลำดับที่เข้มงวดเมื่อเรียกใช้เมธอดวงจร

NavigationView จะโฮสต์แผนที่การนำทางและติดตามวงจร เหตุการณ์อย่างใกล้ชิดในฐานะกิจกรรมและ Fragment ของ Android โดยจะดำเนินการเฉพาะเมื่อมีการเรียกใช้ เหตุการณ์วงจรเหล่านี้ NavigationView จะดำเนินการเริ่มต้นหลายครั้ง ใน NavigationView#onCreate และ NavigationView#onStart รวมถึงการล้างข้อมูลใน NavigationView#onStop และ NavigationView#onDestroy ตลอดจนเมื่อมีการประมวลผลเหตุการณ์วงจรอื่นๆ

NavigationViewมีวิธีการวงจรเดียวกันกับที่ใช้สำหรับกิจกรรมหรือ Fragment ของ Android เช่น onCreate() ของ NavigationView จะแปลเป็น และควรเรียกใช้โดยการเรียกกลับของวงจร จากกิจกรรมหรือ Fragment ของ Android เนื่องจากNavigationViewการเรียกกลับของวงจรจะอิงตามและเรียกใช้ตามลำดับเดียวกับการเรียกกลับของวงจร Android จึงต้องมีการจัดลำดับที่ชัดเจนสำหรับเมธอด NavigationView เหล่านี้ มิฉะนั้น คุณอาจพบหน่วยความจำ รั่ว ข้อผิดพลาดของ UI ตำแหน่งไม่อัปเดต และปัญหาอื่นๆ

ดูข้อมูลเพิ่มเติมเกี่ยวกับวงจรของกิจกรรม Android ได้ที่ส่วนแนวคิดวงจรของกิจกรรม ในเอกสารประกอบสำหรับนักพัฒนาแอป Android

ตารางต่อไปนี้แสดงเวลาที่ควรเรียกใช้เมธอดวงจรอื่นๆ หลังจากเมธอดวงจรที่ระบุ

วิธีการวงจร เรียกใช้ในวงจรกิจกรรม เรียกใช้หลังจากเมธอดวงจรใด
onConfigurationChanged() เรียกใช้เมื่อ UI อยู่ในเบื้องหน้าและการกำหนดค่ามีการเปลี่ยนแปลง หลังวันที่ onStart() เสมอ
onTrimMemory() เรียกใช้เมื่อกิจกรรมอยู่ในเบื้องหลัง หลังวันที่ onPause() เสมอ
onSaveInstance() เรียกใช้ก่อนที่จะทำลายกิจกรรม หลัง onStop()เสมอ

อย่าเรียกเมธอดวงจรนี้หลายครั้งโดยไม่เรียกเมธอดปิดที่เกี่ยวข้องก่อน นอกจากนี้ โปรดทราบว่าหากแอปจัดการการเรียกกลับวงจรของ Android บางรายการเหล่านี้ และมีการเพิ่ม NavigationView ลงใน Fragment หลังจากสร้างหรือเริ่มต้น แอปควรเรียกใช้เมธอดที่เฉพาะเจาะจงด้วยตนเองตามลำดับที่ถูกต้องเพื่อเริ่มต้นใช้งาน Navigation SDK อย่างถูกต้อง

ดูคำแนะนำเพิ่มเติมเกี่ยวกับการใช้วิธีการเหล่านี้ได้ในแอปเดโม Navigation SDK

หากใช้ NavigationView ให้เรียกใช้เหตุการณ์วงจรจากกิจกรรมหรือ Fragment อย่างใดอย่างหนึ่ง ไม่ใช่ทั้ง 2 อย่าง

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