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