
MessageActivity עם padding 16, TextView ממורכז (גודל 30) עם הודעה לדוגמה שקבועה בקוד, ולחצן Close בפינה הימנית התחתונה שקורא ל-finish(). במציאות ההודעה תהיה דינמית.Intent שמצביע על MessageActivity.class. אנחנו לא מפעילים אותו בעצמנו, אלא מעבירים אותו להתראה.PendingIntent.getActivity(context, requestCode, intent, flag), כאשר ה-requestCode כאן 0 כי אין לו משמעות.FLAG_UPDATE_CURRENT יגרום להצגה מחדש בכל לחיצה, אבל מכיוון שההתראה נעלמת בלחיצה, נבחר FLAG_ONE_SHOT. הוא קובע שהאקטיביטי תוצג פעם אחת, גם אם לוחצים כמה פעמים מהר.setContentIntent(pendingIntent).הטקסט המלא של הדקות הראשונות בהרצאה «Activity Invoked from Notification» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אחרי שהצגנו נוטיפיקיישן בואו נראה איך אנחנו יכולים בלחיצה על הנוטיפיקיישן להציג אקטיביטי ספציפית שיש לנו באפליקציה. אז אם הנוטיפיקיישן שלנו מציגה הודעה בואו נייצר אקטיביטי שהתפקיד שלה זה להציג את ההודעה.
אז יש לנו פה Add New Activity בואו נבחר ב- Empty Activity ונקרא ל- Activity Message Activity. ובואו נעצב את ה-Layout בצורה ממש פשוטה. ניפטר מאלה, נגדיר כאן איזשהו padding סטנדרטי של 16, ניקח איזשהו Object Text View, נגדיר אותו כ-Rap Content, נגדיר Text Size 30, נגדיר טקסט,
כרגע בואו נעשה איזה משהו שהוא Hard Coded, what-up man, נרד ושורה או שתיים, coming to the party ונגדיר כאן כאילו שמי ששולח את זה זה איזשהו חבר שלנו שנקרא שוני. לאחר מכן נגדיר center in parent true והנה ארגנו לעצמנו פה איזושהי הודעה כזאתי למרות שהיא hardcoded עדיין הקונספט הוא ברור יש לנו איזושהי activity שכמובן ההודעה תהיה דינמית נקבל אותה ונציג אותה ליוזר ברגע שהוא לוחץ קליק על ה-Notification.
בואו נאפשר איזשהו לחצן שיאפשר לסגור את ה-TVT, טקסט קלוז, נגדיר טקסט סייז איזשהו 20, עליין פרנט בוטום, עליין פרנט רייט, והנה זרקנו פה את הלחצן ימינה ורק און קליק, בטון קלוז, און קליק, והפקודה היחידה שאנחנו רוצים להגדיר כאן זאת פקודת ה-Finish.
והנה סיימנו להגדיר את ה-Activity. אנחנו רוצים שבלחיצה על ה-Notification ה-Activity הזאת תוצג, ובמציאות כמובן נעדכן באופן דינמי את טקסט ההודעה.
אז מה שאנחנו צריכים לעשות זה לחזור לאזור קוד שיצר את ה-Notification, ואנחנו רוצים ליצור לעצמנו אינטנט שיוכל להצביע על אקטיביטי החדשה.
עכשיו New Intent, ניתן לו This ו-MessageActivity.class, אבל אנחנו רוצים שמישהו אחר יפעיל את האקטיביטי, יציג את האקטיביטי שלנו, את ה-MessageActivity.
אנחנו לא רוצים בעצמנו to start activity from here. מה שאנחנו רוצים לעשות זה לתת את ה-Intent הזה ל-Notification, כך שהיוזר ילחץ על ה-Notification ואז ה-Activity תוצג.
ראינו בעבר שקיים אובייקט שמסוגל לבצע בדיוק את זה והוא נקרא Pending Intent. Pending Intent זה אובייקט שמחזיק בתוכו אינטנט כך שאנחנו יכולים לשלוח למישהו אחר את ה-Pending Intent הזה ואז הוא יוכל להפעיל את אותה אקטיביטי או את אותו קומפוננט שמצביעים עליו על ידי האינטנט שנמצא בתוך ה-Pending Intent.
אז בואו ניצור אובייקט Pending Intent והיצירה שלו מתבצעת בצורה הבאה: pendingIntent.getActivity. פונקציה שמקבלת את ה-context זה יהיה this, מקבלת איזשהו request code שכרגע אין לזה משמעות, אז בואו ניתן לו 0, איזה אינטנט אנחנו רוצים להעביר למישהו אחר, ואיזשהו דגל שמתאר איך להתנהג עם האינטנט הזה.
לדוגמה, Ending Intent נקודה יש לנו לדוגמה את Flag Update Current זה אומר שכל פעם שילחצו על ה-Notification האקטיביטי תוצג מחדש. אנחנו יודעים שבלחיצה על ה-Notification האקטיביטי מוצגת ואז בגלל על הנקודה הזאת הנוטיפיקיישן נעלמת ולכן יותר הגיוני להשתמש בפלאג וואן שוט.
פלאג וואן שוט אומר ברגע שלחצת על הנוטיפיקיישן