PracticU

Broadcast

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA › Broadcast
מילון מושגים:
ArrayList - מבנה נתונים של רשימה דינמית שגודלה משתנה, הנפוץ בשפות כמו Java ו-C#.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
Intent - ב-Android, אובייקט הודעה שמבקש פעולה, למשל מעבר בין מסכים או הפעלת רכיב אחר.
Activity - ב-Android, רכיב שמייצג מסך יחיד של האפליקציה שאיתו המשתמש מתקשר.
חבילה - אוסף ארוז של קוד, ספריות או קבצים המופץ כיחידה אחת ומותקן בעזרת מנהל חבילות.
אירוע - התרחשות שהמערכת מזהה ויכולה להגיב לה, כמו לחיצת עכבר, הקשה או סיום פעולה.

Broadcast
עד עכשיו קיבלנו Broadcast מהמערכת. כאן הופכים לצד המשדר: אפליקציית מטלות מפרסמת הודעה כשמטלה נוספת או נמחקה, כדי שאפליקציות אחרות יוכלו להגיב.
האפליקציה הקיימת
אפליקציית רשימת מטלות: EditText להזנה, לחצן Save, ו-ListView עם ArrayAdapter על ArrayList של מחרוזות. Save מוסיף את המטלה לרשימה, מרענן את ה-Adapter ומנקה את התיבה. לחיצה על פריט פותחת AlertDialog (עם setCancelable(false)), ו-Yes מסיר את הפריט ומרענן.
הוספת שידור
1. Intent ריק: יוצרים Intent בלי Activity.
2. Action משני חלקים: מחרוזת שמורכבת מה-package של האפליקציה, נקודה, ושם שמתאר את האירוע, באותיות גדולות עם קו תחתון בין מילים, כמו com.practicu...TASK_ADDED. אפליקציה אחרת תאזין בדיוק ל-Action הזה.
3. Extras: אופציונלי. כאן putExtra עם המטלה שנוספה (שם הפריט מומצא וניתן לבחור כל שם).
4. שידור: sendBroadcast(intent) משדרת את ה-Intent למערכת השידורים של המכשיר, וכל אפליקציה רשומה מקבלת אותו מיד.
5. שידור שני במחיקה: בלחיצה על Yes בדיאלוג משדרים Action אחר, TASK_REMOVED, עם extra של המטלה שנמחקה (בשם שמתאים לזמן עבר).
שימו לב
בהרצה האפליקציה עובדת כרגיל ואין קריסה, אבל גם לא רואים שום תוצאה, כי אף אפליקציה עוד לא נרשמה לשידורים האלה. בשיעור הבא נבנית אפליקציה נפרדת שמקבלת אותם.
אחרי השיעור אפשר לשדר הודעות מותאמות אישית מאפליקציה שלנו בעזרת sendBroadcast.
השיעור הבא בקורס: Receive App Broadcast

פרקי ההרצאה: Broadcast

  1. 00:00

    אפליקציה שמשדרת Broadcast

  2. 00:41

    סקירת הקוד של רשימת המטלות

  3. 01:56

    מחיקת מטלה עם AlertDialog

  4. 02:50

    הוספה ומחיקה של מטלות בהרצה

  5. 04:01

    דיווח החוצה על כל שינוי

  6. 04:37

    Intent עם Action בשם מותאם

  7. 05:56

    הוספת המטלה כ-Extra

  8. 06:37

    שידור עם sendBroadcast

תמלול ההרצאה: Broadcast

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

  1. 00:02

    אחרי שראינו איך אנחנו יכולים לקבל דיווחי Broadcast מהמערכת, בואו נראה איך אנחנו יכולים לבנות אפליקציה שמשדרת Broadcast, כך שאפליקציות אחרות יוכלו לקבל בדיוק את ה-Broadcast האלה.

  2. 00:17

    אז יש לנו פה אפליקציה פשוטה שמה שהיא עושה היא עושה רשימה של מטלות. יש לנו פה Edit Text שהיוזר יכול להכניס מטלה, יש לנו כאן לחצן שמאפשר לשמור את המטלה, יש לנו List View שמאפשר להציג את המטלות לאחר השמירה.

  3. 00:36

    בואו קודם כל נראה מה קורה ב-Java Code. כאשר אנחנו מגיעים לקוד, בואו נעבור ממש ונראה איך כל הסיפור הזה בנוי. יש לנו כאן את הרכיבים הוויזואליים, יש לנו את ה-Edit Text ואת ה-List View.

  4. 00:50

    יש לנו כאן את ה-ArrayList בשביל שיחזיק את המטלות כסטרינגים. יש לנו ה-ArrayAdapter בכדי לבצע את התצוגה. כאן איתרנו את הרכיבים הוויזואליים, את ה-Edit Text ואת ה-List View.

  5. 01:05

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

  6. 01:24

    אז קודם כל בלחצן Save, כל מה שאנחנו עושים, אנחנו לוקחים את המידע שהיוזר הכניס מה-Edit Text, שומרים אותו באיזושהי סטרינג פה task to add, מוסיפים את זה ל-array list ומרפרשים את האדפטר וזה יגרום לרשימה של המטלות להיות עוד פעם מוצגות בליסט כולל המטלה החדשה שהוספנו.

  7. 01:48

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

  8. 02:06

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

  9. 02:19

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

  10. 02:43

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

  11. 02:52

    הנה אנחנו רואים שהאפליקציה רצה על האמולטור ובואו נכניס כאן איזשהו פריט לרשימה של המטלות. the cat אני לוחץ על save ואני רואה את הפריט כאן clean the house בואו נלחץ על save והנה אנחנו רואים את הפריט כאן בואו נרשום buy some dog bonzo בואו נלחץ על save סבבה

  12. 03:21

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

  13. 03:44

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

  14. 04:01

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

  15. 04:28

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

  16. 04:45

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

  17. 05:06

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

  18. 05:23

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

  19. 05:42

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

  20. 06:14

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

  21. 06:29

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

  22. 06:53

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

  23. 07:06

    בואו נבצע בדיוק את אותו הדבר או משהו קצת

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

ההרצאה הקודמת: Boot Completed Receiver

ההרצאה הבאה: Receive App Broadcast

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

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