หน้านี้อธิบายแนวทางปฏิบัติแนะนำสำหรับการโต้ตอบกับแผนที่การนำทางในแอป
ใช้ SupportNavigationFragment
แทน NavigationView
ทุกครั้งที่เป็นไปได้
SupportNavigationFragment
เป็น Wrapper เพื่อความสะดวกในการจัดการ
NavigationView
การเรียกกลับของวงจรการใช้งาน คุณจึงไม่จำเป็นต้องจัดการการเรียกกลับเหล่านี้ด้วยตนเอง วิธีนี้มีข้อผิดพลาดน้อยกว่าและเป็นวิธีที่แนะนำในการ
ใช้การนำทางในแอป เมื่อใช้ SupportNavigationFragment
โปรดอย่า
เรียกใช้เหตุการณ์วงจรของ NavigationView
หากใช้ NavigationView
ให้ใช้การจัดลำดับที่เข้มงวดเมื่อเรียกใช้เมธอดวงจร
NavigationView
จะโฮสต์แผนที่การนำทางและติดตามเหตุการณ์วงจร
อย่างใกล้ชิดในฐานะกิจกรรมและ Fragment ของ Android โดยจะดำเนินการเฉพาะเมื่อมีการเรียกใช้
เหตุการณ์วงจรเหล่านี้ NavigationView
จะดำเนินการเริ่มต้นหลายครั้ง
ใน NavigationView#onCreate
และ NavigationView#onStart
รวมถึงการล้างข้อมูลใน
NavigationView#onStop
และ NavigationView#onDestroy
ตลอดจนเมื่อมีการประมวลผลเหตุการณ์วงจรอื่นๆ
NavigationView
มีความหมายเหมือนกับที่ใช้ในกิจกรรมหรือ Fragment ของ Android
เช่น onCreate()
ของ NavigationView
โดยประมาณ
จะแปลเป็นและควรเรียกใช้โดยการเรียกกลับของวงจร
จากกิจกรรมหรือ Fragment ของ Android เนื่องจากNavigationView
การเรียกกลับของวงจรการใช้งานอิงตาม
และเรียกใช้ตามลำดับเดียวกับการเรียกกลับของวงจรการใช้งาน Android จึงจำเป็นต้องมีการจัดลำดับที่ชัดเจนของเมธอด NavigationView เหล่านี้ มิฉะนั้น คุณอาจพบหน่วยความจำ
รั่ว, ข้อผิดพลาดของ UI, ตำแหน่งไม่อัปเดต และปัญหาอื่นๆ
ดูข้อมูลเพิ่มเติมเกี่ยวกับวงจรของกิจกรรม Android ได้ที่ส่วนแนวคิดวงจรของกิจกรรม ในเอกสารประกอบสำหรับนักพัฒนาแอป Android
ตารางต่อไปนี้แสดงเวลาที่ควรเรียกใช้เมธอดวงจรอื่นๆ หลังจากเมธอดวงจรที่ระบุ
วิธีการวงจร | เรียกใช้ที่ใดในวงจรชีวิตของกิจกรรม | เรียกใช้หลังจากเมธอดวงจรลูกค้าใด |
---|---|---|
onConfigurationChanged()
|
เรียกใช้เมื่อ UI อยู่ในเบื้องหน้าและการกำหนดค่ามีการเปลี่ยนแปลง | หลังวันที่ onStart() เสมอ
|
onTrimMemory()
|
เรียกใช้เมื่อกิจกรรมอยู่ในเบื้องหลัง | หลังวันที่ onPause() เสมอ
|
onSaveInstance()
|
เรียกใช้ก่อนที่จะทำลายกิจกรรม | หลัง onStop() เสมอ
|
อย่าเรียกเมธอดวงจรนี้หลายครั้งโดยไม่เรียกเมธอดปิดที่เกี่ยวข้องก่อน นอกจากนี้ โปรดทราบว่าหากแอปจัดการการเรียกกลับวงจรของ Android บางรายการเหล่านี้ และมีการเพิ่ม NavigationView
ลงใน Fragment หลังจากสร้างหรือเริ่มต้น แอปควรเรียกใช้เมธอดที่เฉพาะเจาะจงด้วยตนเองตามลำดับที่ถูกต้องเพื่อเริ่มต้นใช้งาน Navigation SDK อย่างถูกต้อง
ดูคำแนะนำเพิ่มเติมเกี่ยวกับการใช้วิธีการเหล่านี้ได้ในแอปเดโม Navigation SDK
หากใช้ NavigationView
ให้เรียกใช้เหตุการณ์วงจรจากกิจกรรมหรือ Fragment อย่างใดอย่างหนึ่ง ไม่ใช่ทั้ง 2 อย่าง
หากต้องการรักษลําดับที่เข้มงวดของเมธอดวงจร ให้เรียกใช้เหตุการณ์เหล่านี้จาก การเรียกกลับของวงจรกิจกรรมหรือ Fragment ซึ่งจะรับเหตุการณ์เหล่านี้ ตามลําดับ วิธีนี้ช่วยให้มั่นใจได้ว่าแอปไม่จำเป็นต้องประสานงานระหว่าง Fragment และกิจกรรม และทำให้เกิดการเรียกซ้ำ