
onAttach, ואחריו onCreate, onCreateView ו-onActivityCreated. האחרון מבלבל, כי האקטיביטי כבר קיימת. האירוע פשוט מופעל כשהפרגמנט משתלבת איתה. לאחר מכן onStart ו-onResume, והפרגמנט פעילה ומקבלת אירועים מהמשתמש.onPause, onStop, onDestroyView, onDestroy ו-onDetach.onPause, onStop ו-onDestroyView. בלחיצה על Back חוזרים ל-onCreateView, ואז onActivityCreated, onStart ו-onResume.onCreate, אבל בפרגמנט זה תפקיד onCreateView, שמנפחת (inflate) את ה-view ומחזירה אותו. ב-onCreate של הפרגמנט מגדירים נתונים שהיא צריכה פעם אחת, כמו adapter או ArrayList של רשימה, ואחר כך ה-view משתמש בהם.הטקסט המלא של הדקות הראשונות בהרצאה «Fragment Lifecycle» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בואו נתבונן ב-Fragment Life Cycle. אמרנו של-Fragment יש Life Cycle במקביל ל-Activity ובנוסף ל-Life Cycle של Activity. אז יש לנו כאן איזשהו מאמר מהדוקומנטציה של אנדרואיד שפשוט מפרט ממש שלב-שלב מה-Life Cycle של-Fragment.
אז בואו נעבור ונראה כמה דגשים בנוגע לזה. קודם כל, Fragment מתווספת ל-Activity. הרי אמרנו שפרגמנט זה בעצם איזשהו סוג של משטח שעליו יושבים רכיבי UI ושאנחנו מוסיפים את המשטח הזה לאקטיביטי.
אז ברגע שהוספנו את הפרגמנט לאקטיביטי, אז יש לנו פה את onAttach, onCreate, onCreateView, onActivityCreated, שזה קצת מבלבל מפני שהאקטיביטי כבר מוכנה, אז איך זה יכול להיות שהיא נוצרת?
אז היא לא נוצרת כאן, היא פשוט, האירוע הזה פשוט מופעל בשלב הזה, מתי שהפרגמנט משתלבת עם האקטיביטי ומתחברת אליה, לאחר מכן onStart, onResume, ואז הפרגמנט פעילה ומוצגת ליוזר.
מה בדיוק אנחנו יכולים לעשות בכל אחד מהאירועים האלה? אנחנו נראה בהמשך, נראה לפחות חלק מהם. כאשר הפרגמנט מוצגת למשתמש, המשתמש יכול לעבוד איתה, והפרגמנט מקבלת אירועים ממנו.
עכשיו, אנחנו רואים שיש פה איזשהו פיצול, כאשר הפרגמנט בעצם נהרסת, או משהו אחר מופיע במקומה. בצד שמאל אנחנו רואים שבעצם הפרגמנט נהרסת לחלוטין, מוסרת או מוחלפת, או שהיוזר basically מנווט אחורה.
אם זה קורה, אז מה שקורה זה שיש לנו פה onPause, onStop, onDestroyView, onDestroy, onDetach, ואז הפרגמנט נחשבת כנהרסת לחלוטין, נהרסה לחלוטין.
אבל זה לא הדבר היחידי שיכול לגרום לפרגמנט בעצם לעבור או לההרס מהמערכת. יכול להיות שכאשר הפרגמנט מוצגת, ה-user רוצה להציג מעליה עוד פרגמנט, ולכן מה שאנחנו יכולים לעשות זה להכניס את הפרגמנט לבקסטק.
ואז המערכת התייחס לפרגמנט כאילו שהיא activity בתוך הבקסטק, כך שהיוזר יוכל ללחוץ back מהפרגמנט העליונה יותר ולחזור לפרגמנט הקודמת. לדוגמה, אם יש לנו activity אחת ואנחנו רוצים להציג מעליה שלושה פרגמנט, שחת אחרי השנייה, כתלות באיזשהו תהליך שקורה ליוזר.
נניח פרגמנט ראשונה, בוא תכניס שם פרטי ושם משפחה, פריגמנט שנייה, בו תבחר כרטיס אשראי, ופריגמנט שלישית, בו בעצם תאשר את הקנייה או משהו כזה.
ואנחנו רוצים לאפשר ליוזר לחזור אחורה בין הפריגמנטים. אז אנחנו יכולים לגרום לפריגמנט להיכנס גם לבקסטק. במצב כזה, מה שקורה לפריגמנט שנכנסה לבקסטק, יש לנו onPause, onStop ו-onDestroyView.
כאשר ה-user מבצע back מהפריגמנט העליונה וחוזר בחזרה לפריגמנט שאנחנו מדברים עליה, אז אנחנו רואים פה את הקו הזה, ואנחנו חוזרים בחזרה ל-onCreateView, ואז ממשיכים onActivityCreated, onStart, onResume, והפריגמנט מוצגת.
אז יש לנו פה כל מיני אירועים של life cycle של פריגמנט, וחשוב רק לעשות או להבהיר דגש בין onCreate ל-onCreateView.