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

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

ใช้ SupportNavigationFragment แทน NavigationView ทุกครั้งที่ทำได้

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

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

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

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

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

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

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

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

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

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

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