שיטות מומלצות לאינטראקציה עם מפת הניווט

בדף הזה מוסברות שיטות מומלצות לאינטראקציה עם מפת הניווט באפליקציה.

אם אפשר, השתמשו ב-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) של מחזור החיים של הפעילות או של קטע הקוד, שמקבלות את האירועים האלה לפי הסדר. הגישה הזו מבטיחה שלאפליקציות לא יהיה צורך לתאם בין פרגמנטים ופעילויות, ושלא ייגרמו קריאות כפולות.