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

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

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

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

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

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

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

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

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

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

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

ดูคำแนะนำเพิ่มเติมในการใช้วิธีการเหล่านี้ได้ที่แอปสาธิตการนำทาง SDK

หากใช้ NavigationView ให้เรียกเหตุการณ์วงจรจากกิจกรรมหรือฟragment เท่านั้น

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