PracticU

Show Notification

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

Show Notification
פותחים נושא חדש, Notifications: ההתראה הקטנה שמופיעה בראש המסך ואפשר לגלול ולראות את תוכנה. היא מאפשרת להודיע למשתמש על הודעה או אירוע בלי להפריע לו יותר מדי. בשיעור בונים ומציגים התראה פשוטה בלחיצה על לחצן, רק לצורך הלימוד.
השלבים העיקריים
1. בניית האובייקט: יוצרים NotificationCompat.Builder עם this כ-Context, ומגדירים בו סדרת פרמטרים.
2. Ticker: הטקסט שמופיע בראש המסך, בחלק מהמכשירים בלבד. כאן New Message.
3. Content title ו-text: מה שרואים כשגוללים את ההתראה: כותרת (You've got a new message) וטקסט (click to see the new message).
4. Small icon: האייקון ליד ה-Ticker, בדוגמה אייקון של מעטפה מה-drawable.
5. Large icon: האייקון שמוצג בגלילה. הפונקציה setLargeIcon מקבלת Bitmap ולא מזהה, ולכן ממירים בעזרת BitmapFactory.decodeResource(getResources(), id).
6. Auto cancel: setAutoCancel(true) גורם להתראה להיעלם כשהמשתמש לוחץ עליה ונפתחת Activity. אם לא נפתחת Activity אין לכך משמעות וההתראה נשארת עד שהמשתמש מסיר אותה.
7. בנייה והצגה: builder.build() יוצר את האובייקט, ו-NotificationManagerCompat.from(this).notify(id, notification) מציג אותו.
8. קוד ההתראה: אם ה-id זהה, המערכת רואה התראה אחת גם אחרי כמה לחיצות. עם משתנה סטטי notificationId שמוגדל בכל לחיצה (notificationId++) מקבלים התראות נפרדות.
שימו לב
- באמולטור לא הופיע טקסט ה-Ticker, ובמכשיר האמיתי הוא הופיע, כלומר ההתנהגות תלויה בגרסת המערכת.
- לחיצה על ההתראה בדוגמה לא עושה דבר, כי לא הוגדרה Activity.
אחרי השיעור אפשר להציג התראה בסיסית עם אייקונים, כותרת וטקסט ולהבחין בין התראות לפי ה-id.
השיעור הבא בקורס: Build Notification

פרקי ההרצאה: Show Notification

  1. 00:00

    מהו Notification ולמה משתמשים בו

  2. 01:51

    יצירת NotificationCompat.Builder

  3. 02:30

    טקסט ה-Ticker בחלק העליון

  4. 03:06

    כותרת ותוכן ההתראה

  5. 04:31

    הגדרת Small Icon

  6. 05:10

    Large Icon כ-Bitmap

  7. 06:10

    סגירה אוטומטית עם setAutoCancel

  8. 07:10

    בניית ההתראה והצגתה עם notify

תמלול ההרצאה: Show Notification

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

  1. 00:02

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

  2. 00:16

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

  3. 00:38

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

  4. 01:02

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

  5. 01:27

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

  6. 01:38

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

  7. 01:57

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

  8. 02:24

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

  9. 02:38

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

  10. 02:59

    אז בואו נגדיר שהתיקר שלנו זה New Message. בואו נניח שאנחנו רוצים להציג הודעה חדשה שהתקבלה, אז כל ה-Notification שאנחנו מציגים כרגע מדברת על איזושהי הודעה שהתקבלה באפליקציה שלנו, ואם היוזר רוצה הוא יפתח את ה-Notification ויראה את ההודעה.

  11. 03:21

    אז הדבר הבא שאנחנו רוצים להציג זה את ה-Title של ה-Content. כאשר היוזר פותח את ה-Notification אז הוא רואה למטה את ה-Notification בצורה קצת יותר נרחבת.

  12. 03:37

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

  13. 03:58

    לקונטנט יש גם טייטל בואו נרשום you've got a new message ולקונטנט יש גם טקסט אז הטקסט יהיה click to see the new message והנה הגדרנו גם טקסט בטיקר גם טקסט בקונטנט שמחולק לכותרת ולטקסט עצמו לאחר מכן אנחנו יכולים להציג אייקונים קטנים אז בואו נציג builder.set small icon ו-small icon זה אותו האייקון שמוצג ליד הטיקר אז יש לנו כאן שני אייקונים אחד עבור הטיקר

  14. 04:46

    ואחד עבור הקונטנט. אז בואו ניקח את האייקון של הטיקר r.drawable.ticker.icon ואנחנו יכולים לראות אותו כאן. בדיוק אייקון שמתאים לאיזושהי הודעה שהתקבלה, מעין מעטפה כזאת.

  15. 05:05

    הדבר הבא שאנחנו רוצים להציג בבילדר זה לארג' אייקון. לארג' אייקון זה אותו האייקון שמופיע כאשר היוזר גולל למטה את הנוטיפיקיישן אבל אנחנו לא מקבלים ID של תמונה אלא אנחנו מקבלים ביטמאפ זה מה שהפונקציה set large icon מקבלת היה נוח אם היא הייתה מקבלת פשוט את ה-ID אבל היא מקבלת רק אובייקט

  16. 05:33

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

  17. 05:41

    אנחנו רואים אפילו כאן את האייקון שהולך להיות מוצג כאשר היוזר גולל למטה את הנוטיפיקיישן הדבר הבא שאנחנו רוצים להגדיר לבילדר זה את הפקודה set auto cancel true.

  18. 06:23

    set auto cancel true זאת פקודה שפשוט מגדירה שאם היוזר לוחץ על הנוטיפיקיישן אחרי שהוא ביצע גלילה למטה, לחץ עליה ואז נפתחה אקטיביטי ספציפית באפליקציה, אז אנחנו רוצים שהנוטיפיקיישן תיעלם, אנחנו לא רוצים שהיא תמשיך להישאר שם.

  19. 06:46

    אם היוזר לוחץ על הנוטיפיקיישן ולא נפתחת לו אקטיביטי, אין משמעות לפקודה הזאת. הנוטיפיקיישן תמשיך להיות שם עד שהיוזר לא יחליט להוציא את הנוטיפיקיישן בעצמו.

  20. 07:00

    אבל אם היוזר לוחץ ונפתחת אקטיביטי, set auto cancel true קובע שהנוטיפיקיישן אוטומטית תיעלם, כי הוא פשוט פתח דרכה אקטיביטי. הדבר הבא שאנחנו רוצים לעשות זה לבנות את אובייקט הנוטיפיקיישן.

  21. 07:18

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

  22. 07:48

    זה יהיה Notification Manager Compat. From This Notify וזה בעצם מציג את הנוטיפיקיישן שבנינו. Notify מקבלת קוד עבור ההודעה ואת ההודעה עצמה.

  23. 08:09

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

  24. 08:24

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

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

ההרצאה הקודמת: Receive App Broadcast

ההרצאה הבאה: Build Notification

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

  • notification channel
  • השוואה בין גרסאות - Log ו-Show

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

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