
הטקסט המלא של הדקות הראשונות בהרצאה «Tasks and Back Stack» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לנושא חדש שנקרא אקטיביטיז. כאן אנחנו הולכים לעבוד עם מספר אקטיביטיז, כאשר עד עכשיו אנחנו עבדנו רק עם אקטיביטי אחת ויחידה ועליה הצגנו את כל ה-UI שלנו.
אנחנו כמובן יכולים לעבוד עם מספר אקטיביטיז. יוזרי לדוגמה יכול ללחוץ על איזשהו לחצן ולראות מסך אחר לגמרי.
עד היום לא עשינו את זה, אבל זה משהו שהוא מאוד נפוץ באפליקציות. לדוגמה הוא מריץ את האפליקציה הוא רואה את המסך הראשי והוא לוחץ על איזשהו לחצן ופתאום מגיע למסך אחר בשביל לקבל פרטים מהמשתמש או אולי להציג תוצאות חיפוש או אולי להציג רשימות במסכים נפרדים אז בנושא הזה אנחנו הולכים לראות איך אנחנו יכולים להציג אקטיביטיז נוספים
ואחרים לגמרי באפליקציה שלנו בנוסף למסך הראשי או לאקטיביטי הראשונה שהיוזר רואה. לצורך כך אנחנו צריכים להכיר שני מונחים. מונח אחד נקרא ה-Backstack ומונח אחר נקרא Task.
יש לנו כאן לינק לדוקומנטציה ראשית של אנדרואיד, לדוקומנטציה מקורית של אנדרואיד, שבה אנחנו יכולים לראות ולהבין את שני המונחים האלה Backstack וה-Tasks.
קודם כל בואו נבין מה זה Backstack. Backstack אנחנו יכולים לראות את זה כאן, זה בעצם מחסנית של activities מחסנית זה איזשהו מבנה נתונים שמאפשר להכניס מידע ממש כמו מחסנית של נשק כאשר אתם מכניסים כדורים למחסנית ואז כאשר אתם רוצים לשלוף כדור או לראות אותו הכדור שיוצא מהמחסנית זה הכדור האחרון שהכנסתם זה הקונספט בסטאק במחסנית אז כאן
אנחנו יכולים פשוט להכניס אקטיביטיז למחסנית וכאשר אנחנו שולפים אקטיביטי האקטיביטי שתישלף זאת האקטיביטי האחרונה שהכנסנו אז בוא נניח שהיוזר מריץ אפליקציה ויש לו מסך אחד וזה המסך הראשי שהוא רואה מה שקורה זה שלאפליקציה יש Backstack ואוטומטית האקטיביטי שאנחנו מתחילים איתה האקטיביטי הראשית נכנסת
ל-Backstack למחסנית הזאת אם יוזר בוא נניח לוחץ הנחצן ואנחנו פותחים לו מסך נוסף כלומר אנחנו מריצים לו עוד אקטיביטי מה שקורה זה שהאקטיביטי השנייה כאן אנחנו רואים את זה כאקטיביטי 2 מוצגת ונכנסת לסטאק ואז האקטיביטי הראשונה נמצאת מאחורה היוזר לא יכול לעבוד באותו רגע עם האקטיביטי הראשונה כי הוא רואה מסך אחר את המסך השני וככה בעצם מה שקורה
ושהאקטיביטי הראשונה נמצאת למטה במחסנית והיוזר עובד עם האקטיביטי השנייה שהוצגה לו. בוא נניח שהיוזר גם כאן לוחץ על איזשהו לחצן ואנחנו מציגים לו בשלב הזה אקטיביטי מספר 3. אז האקטיביטי השלישית נוצרת ונכנסת לסטאק ודוחפת אחורה את אקטיביטי 1 ואת אקטיביטי 2. כרגע היוזר עובד עם אקטיביטי מספר 3 ולא יכול לעבוד עם אקטיביטי 2 ועם
אקטיביטי 1 שממתינים מאחורה בסטאק. במחסנית כל הזמן יש רק אקטיביטי אחת שנחשבת כ-Foreground Activity שאיתה היוזר יכול לעבוד ולבצע אינטראקציה כלומר לראות מידע ולהכניס מידע לאקטיביטי.
בוא נניח שבשלב הזה היוזר לוחץ על ה-Back Button מה שקורה זה שהאקטיביטי מספר 3 נהרסת אנחנו רואים את זה כאן אנדרואיד הורס את האקטיביטי ולכן מוציא אותה מהסטאק אם הוא הוציא אותה מהסטאק אז אוטומטית אקטיביטי 2 הופכת להיות האקטיביטי הפעילה כי היא פשוט הייתה שם ברקע והמתינה לתורה ואז היוזר עובד עם אקטיביטי 2 ואקטיביטי 1 נשמרת לו עדיין מאחורה אם היוזר
גם בשלב הזה ילחץ על הבאק בטון כמובן שאקטיביטי 2 תהרס והיוזר יחזור לעבוד עם אקטיביטי 1 אם גם כאן הוא לוחץ על הבאק בטון אקטיביטי 1 תהרס והיוזר כמובן יוצא לגמרי מהאפליקציה.
אז כל הקונספט הזה נקרא ה-Backstack של האפליקציה. מה זה Task? Task זה בעצם סדרה של Activities שנמצאת בתוך Backstack.
כאן אנחנו יכולים לראות דוגמה ל-Task. יש לנו Task A. לדוגמה, היוזר הריץ אפליקציה א' ופתח שני Activities. באפליקציה הזאת נפתחה Activity X ו-Activity Y והם נמצאים ב-Task הזה.
עכשיו בוא נניח שהיוזר לוחץ על לחצן ה-Home ובעצם מגיע לחלון ה-Launcher ואז בא לו להפעיל אפליקציה אחרת. מה שאנדרואיד עושה זה לוקחת את ה-Backstack הזה שנמצא ב-Task A ושמה אותו ב-Background ועכשיו מפעילה Task אחר