หน้านี้จะอธิบายแนวทางปฏิบัติแนะนำสำหรับการโต้ตอบกับแผนที่การนําทางในแอป
ใช้ 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 ของวงจรชีวิตของแอตทริบิวต์หรือแฟรกเมนต์ ซึ่งจะรับเหตุการณ์เหล่านี้ตามลําดับ วิธีนี้ช่วยให้แอปไม่ต้องประสานงานระหว่างข้อมูลโค้ดที่แยกส่วนและกิจกรรม และทำให้ไม่มีการเรียกซ้ำ