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