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

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

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

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

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

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

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

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

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

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

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

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

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

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