בדף הזה מוסברות שיטות מומלצות לאינטראקציה עם מפת הניווט באפליקציה.
אם אפשר, השתמשו ב-SupportNavigationFragment
במקום ב-NavigationView
SupportNavigationFragment
הוא wrapper שנועד לטפל בנוחות ב-callbacks של מחזור החיים של NavigationView
, כך שלא צריך לנהל את ה-callbacks האלה בעצמכם. השיטה הזו פחות חשופה לשגיאות והיא הדרך המומלצת להשתמש ב-Navigation באפליקציה. כשמשתמשים ב-SupportNavigationFragment
, חשוב לא להפעיל אירועים של מחזור החיים של NavigationView
.
אם משתמשים ב-NavigationView
, צריך להקפיד על סדר קפדני כשמפעילים שיטות של מחזור חיים
NavigationView
מארח את מפת הניווט ועוקב אחרי אירועי מחזור החיים כפעילויות וכקטעים ב-Android, ומבצע פעולות ספציפיות כשאירועי מחזור החיים האלה מופעלים. NavigationView
מבצע כמה אתחולים ב-NavigationView#onCreate
וב-NavigationView#onStart
, וניקויים ב-NavigationView#onStop
וב-NavigationView#onDestroy
, וגם כשמעבדים אירועים אחרים של מחזור החיים.
לשיטות מחזור החיים של NavigationView
יש את אותה משמעות כמו לפעילויות או לקטעים של Android. לדוגמה, onCreate()
של NavigationView
מתורגם בערך ל- הקריאות החוזרות (callback) של מחזור החיים של NavigationView
מבוססות על הקריאות החוזרות של מחזור החיים של Android ומופעלות באותו סדר, ולכן נדרש סדר חזק של השיטות האלה של NavigationView. אחרת, יכול להיות שתיתקלו בדליפות זיכרון, בשגיאות בממשק המשתמש, בבעיות בעדכון המיקום ובבעיות אחרות.
מידע נוסף על מחזור החיים של פעילות ב-Android זמין בקטע מושגים שקשורים למחזור החיים של פעילות במאמרי העזרה למפתחים של Android.
בטבלה הבאה מפורט מתי צריך להפעיל שיטות אחרות של מחזור חיים, אחרי שיטות מחזור חיים שצוינו:
שיטה של מחזור החיים | הפעלה במקום במחזור החיים של הפעילות | מופעל אחרי איזו שיטה במחזור החיים |
---|---|---|
onConfigurationChanged()
|
מופעל כשהממשק נמצא בחזית וההגדרה משתנה. | תמיד אחרי onStart()
|
onTrimMemory()
|
מופעל כשפעילות מתבצעת ברקע. | תמיד אחרי onPause()
|
onSaveInstance()
|
מופעל לפני השמדת פעילות. | תמיד אחרי onStop()
|
אל תקראו לשיטות האלה של מחזור החיים כמה פעמים בלי לקרוא קודם לשיטת הסגירה המתאימה. בנוסף, חשוב לזכור שאם חלק מהקריאות החוזרות (callbacks) של מחזור החיים של Android מנוהלות על ידי האפליקציה עצמה, ו-NavigationView
מתווסף לרכיב ה-fragment אחרי היצירה או ההתחלה, האפליקציה צריכה לקרוא לשיטות הספציפיות בעצמה בסדר הנכון כדי לאתחל את Navigation SDK בצורה נכונה.
הנחיות נוספות לשימוש בשיטות האלה מפורטות באפליקציית ההדגמה של Navigation SDK.
אם משתמשים ב-NavigationView
, מפעילים את האירועים של מחזור החיים מהפעילות או מהקטע, ולא משניהם
כדי לשמור על הסדר הקפדני של שיטות מחזור החיים, צריך להפעיל את האירועים האלה מתוך הקריאות החוזרות (callback) של מחזור החיים של הפעילות או של קטע הקוד, שמקבלות את האירועים האלה לפי הסדר. הגישה הזו מבטיחה שלאפליקציות לא יהיה צורך לתאם בין פרגמנטים ופעילויות, ושלא ייגרמו קריאות כפולות.