PracticU

Activity Lifecycle

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA › Activity Lifecycle
מילון מושגים:
Activity - ב-Android, רכיב שמייצג מסך יחיד של האפליקציה שאיתו המשתמש מתקשר.
אירוע - התרחשות שהמערכת מזהה ויכולה להגיב לה, כמו לחיצת עכבר, הקשה או סיום פעולה.
זיכרון - רכיב מהיר ונדיף שבו המחשב שומר נתונים ותוכניות בזמן ריצתם. תוכנו נמחק עם כיבוי המחשב.
תהליך - מופע של תוכנה שרצה בזיכרון, עם הקוד, הנתונים והמשאבים שהוקצו לה על ידי מערכת ההפעלה.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
לייאאוט - ארגון וסידור הרכיבים החזותיים על המסך או בדף, כמו מיקום כפתורים, טקסט ותמונות.

Activity Lifecycle
לאקטיביטי יש מחזור חיים: סדרת אירועים שמתרחשים אוטומטית כשהיא נוצרת, מוצגת, נעלמת או נהרסת. לכל אירוע תפקיד משלו, ובשיעור רואים מהם ומתי הם מתבצעים.
סדר האירועים
1. הפעלה: onCreate, אחריו onStart ואז onResume. רק אחרי onResume האקטיביטי רצה ואפשר לבצע איתה אינטראקציה.
2. אקטיביטי אחרת מוצגת מעליה: מתבצעים onPause ואז onStop. ב-onPause האקטיביטי עדיין נראית, וב-onStop כבר לא.
3. חזרה אליה: onRestart, onStart, onResume.
4. השמדה: onPause, onStop, onDestroy, והאקטיביטי יוצאת מהזיכרון.
5. מקרים נוספים: אם חוזרים לפני ש-onStop התבצע, מתבצע רק onResume. אם אנדרואיד הורגת את האקטיביטי או את התהליך, ההצגה מחדש מתחילה שוב מ-onCreate.
מה נבדק בפועל
דורסים בכל אחת מהפונקציות הללו ב-SecondActivity ומציגים Toast עם שם האירוע. תוצאות:
- פתיחת האקטיביטי: onCreate, onStart, onResume.
- לחיצה על Home: onPause, onStop, והאקטיביטי נשארת ברקע.
- חזרה דרך Recent Activities: onRestart, onStart, onResume.
- לחיצה על Back: onPause, onStop, onDestroy.
מה עושים בכל אירוע
ב-onCreate מציגים את ה-layout. ב-onPause ו-onResume מטפלים בדברים שצורכים אנרגיה, למשל האזנה לחיישנים (sensors): ב-onPause מפסיקים להאזין כי כשהאקטיביטי מוסתרת אין בהם צורך, וב-onResume ממשיכים. את החיישנים עצמם הוא יראה בהמשך.
אחרי השיעור אפשר לדעת איזה קוד לשים בכל אירוע של מחזור החיים, ולבדוק את סדרם בעזרת Toast.
השיעור הבא בקורס: The Up Button

פרקי ההרצאה: Activity Lifecycle

  1. 00:00

    מהו מחזור החיים של Activity

  2. 00:41

    onCreate, onStart ו-onResume

  3. 01:19

    onPause, onStop ו-onRestart

  4. 01:55

    onDestroy והריגת התהליך

  5. 02:50

    דריסת אירועי מחזור החיים בקוד

  6. 03:54

    טוסט בכל אירוע

  7. 04:41

    בדיקת סדר האירועים בהרצה

תמלול ההרצאה: Activity Lifecycle

הטקסט המלא של הדקות הראשונות בהרצאה «Activity Lifecycle» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:22

    כל אירוע כזה יש לו את התפקיד שלו ודברים מסוימים אנחנו נרצה לבצע באירועים מסוימים. קודם כל בואו נראה מהם האירועים השונים שמתרחשים במסגרת Activity Lifecycle. יש לנו כאן דוקומנטציה מקורית של אנדרואיד, מהאתר של אנדרואיד, שמדגימה בדיוק את ה-Activity Lifecycle.

  3. 00:47

    דבר ראשון, אנחנו בעצם מבצעים Launch ל-Activity, כלומר אנחנו מציגים Activity, זה לא משנה אם זה ה-Activity הראשונה או ה-Activity השנייה שאנחנו מציגים מעליה.

  4. 01:00

    ואז אנחנו כבר ראינו את האירוע OnCreate שמתרחש בהתחלה. לדוגמה באירוע onCreate אנחנו נרצה להציג את ה-Layout, אבל זה לא האירוע היחידי שמתרחש.

  5. 01:14

    מייד לאחריו מתרחש האירוע onStart, לאחר מכן onResume ורק אז האקטיביטי נחשבת כרצה ובאמת אפשר לבצע אינטראקציה איתה. אם היוזר בעצם מציג עוד אקטיביטי על פני האקטיביטי הזאת, אז אירוע onPosed מתבצע ואירוע onStop מתבצע.

  6. 01:37

    ההבדל בין שני האירועים האלה זה שב-on pose עדיין רואים את האקטיביטי וב-on stop כבר לא רואים אותה אלא רואים את האקטיביטי השנייה שנמצאת בחזית.

  7. 01:50

    אם היוזר שוב חוזר לאקטיביטי אז מתבצע אירוע on restart, לאחר מכן on start ואז on resume ואז האקטיביטי שוב פעם מוצגת.

  8. 02:02

    אם לדוגמה אנחנו מבצעים destroyed לאקטיביטי אז מתבצע און פאוז, און סטופ, און דיסטרוי ובשלב הזה האקטיביטי כבר שט דאון ויצא לגמרי מהזיכרון. יש עוד כמה מקרים לדוגמה אם באון פאוז אנחנו מיד חוזרים בחזרה user returns to the activity אז מתבצע רק און ריזיום ואם לדוגמה באחד מהשלבים האנדרואיד רואה

  9. 02:30

    לנכון להרוג את האקטיביטי או את הפרוסס כולו ואז אנחנו רוצים להציג את האקטיביטי מחדש. אז כמובן אנחנו מגיעים מההתחלה ל-onCreate, onStart, onRezume, ואז האקטיביטי מוצגת.

  10. 02:45

    בואו ניגש לתוכנית באנדרואיד ונראה את כל האירועים האלה בפועל. אז בואו ניגש לאקטיביטי השנייה שיש לנו ונתחיל לבנות את האירועים האלה פשוט על ידי הדריסה שלהם.

  11. 03:00

    הנה יש לנו כאן את onCreate ואנחנו רוצים להתחיל ליצור את onStart, אנחנו רוצים ליצור את on-resume אנחנו רוצים ליצור את on-pause אנחנו רוצים ליצור את on-stop לדרוס את כל אלה בואו נדרוס את on-restart ולבסוף בואו נדרוס את on-distory כל הפונקציות שראינו בתרשים בואו ניפטר מכל הדירקטיבס המיותרים

  12. 03:39

    האלה שיהיה קצת פחות קוד נראה יותר קוד על המסך וכל מה שאנחנו רוצים לעשות זה להגדיר איזשהו טוסט בכל אחד מהם יש לנו פה טוסט make text this נשאיר אותו כרגע רגע נגדיר length short ויש לנו את show ניקח את הטוסט הזה ונשכפל לכל אחד מהאירועים האלה תביני שהאמת אני לא צריך ולאחר מכן נגדיר את השם של האירוע בתוך הטוסט כך אנחנו נראה

  13. 04:27

    בדיוק איזה אירוע מתרחש מתי בכל מיני תהליכים שונים שאנחנו הולכים לבדוק יש לנו פה את on restart יש לנו את on destroy וסיימנו להגדיר את כל אלה אז בואו נריץ ובואו נלחץ על הלחצן שואו סקנד אקטיביטי ונראה אילו טוסטים אנחנו רואים.

  14. 04:59

    אז אנחנו רואים את און קריאט, און סטארט ואון ריזיום בדיוק כמו שדיברנו בסרטוט און קריאט און סטארט און ריזיום ואז האקטיביטי מוצגת. עכשיו אם אנחנו לוחצים על ההום בטון בכדי לחזור להום בואו נראה אילו טוסטים אנחנו רואים, יש לנו את אות pause ו-on stop ואז האקטיביטי נמצאת עדיין ברקע.

  15. 05:28

    בואו ניגש ל-recent activities ונלחץ על האקטיביטי ואז אנחנו רואים את on restart, on start ו-on resume

לקורס המלא: קורס פיתוח אפליקציות לאנדרואיד

ההרצאה הקודמת: Display Second Activity

ההרצאה הבאה: The Up Button

הרצאות קשורות מקורסים אחרים

  • פונקציות Lifecycle Hooks
  • Activity Tracing
  • Activity Logs

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode
  • קורס פלאטר - Flutter - שפת DART של גוגל למובייל - פיתוח אפליקציות לאנדרואיד ואייפון
  • קורס PhoneGap - פיתוח אפליקציות לאנדרואיד ואייפון