PracticU

Intents

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

Intents
פותחים נושא חדש, Implicit Intents. כדי להבין אותם צריך קודם להכיר כמה מונחים סביב Intent.
המונחים שחשוב להכיר
1. Intent: אובייקט שמתאר ומפעיל Activity. הוא יכול להפעיל גם דברים אחרים, למשל שירות פנימי במכשיר, אבל זה יוצג בהמשך.
2. Explicit Intent: מתאר Activity ספציפית, למשל new Intent(this, BackgroundActivity.class) ואחריו startActivity.
3. Intent Filter: אובייקט עם קריטריונים לאיתור Activity, עד שלושה: Category (סוג כללי, כמו אנשי קשר או גלריה), Action (הפעולה, למשל צפייה או עריכה) ו-Data (קישור, אתר או כתובת פנימית כמו Calendar). ב-Data נכלל גם MIME type, למשל text/plain או video/mp4.
4. Implicit Intent: Intent שלא מתאר Activity מסוימת, אלא מגדיר קריטריונים, והמערכת מחפשת עבורנו Activity מתאימה.
5. מה קורה בחיפוש: אם נמצאת Activity אחת, היא מורצת מיד. אם נמצאות כמה, נפתח App Chooser שבו המשתמש בוחר. אם לא נמצאה אף אחת, נזרקת Exception, ואפשר לתפוס אותה ב-try-catch או לבדוק מראש אם קיימת Activity מתאימה.
6. דוגמה: יוצרים Intent ריק, מגדירים לו action מסוג view ו-data עם URL, וקוראים ל-startActivity. המערכת תמצא את הדפדפן.
7. תוכן של Intent: Activity להפעלה, Category, Action, Data, Extras (מידע נוסף) ו-Flags (התנהגויות מסוימות).
8. Pending Intent: עטיפה ל-Intent שמאפשרת לשלוח אותו לגורם אחר (רכיב, שירות או Activity), והוא יפעיל אותו. השימוש בו יוצג בהמשך.
כעת אפשר להבחין בין Explicit ל-Implicit Intent ולהתחיל לעבוד עם האחרון.
השיעור הבא בקורס: Send Email

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

  1. 00:00

    מהו Intent ו-Explicit Intent

  2. 00:57

    Intent Filter וקריטריון הקטגוריה

  3. 01:32

    הקריטריונים Action ו-Data

  4. 02:29

    מהו Implicit Intent

  5. 03:07

    כשאין Activity מתאימה

  6. 04:00

    מה Intent יכול להכיל

  7. 04:40

    מהו Pending Intent

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

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

  1. 00:02

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

  2. 00:21

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

  3. 00:34

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

  4. 00:53

    לאחר מכן אנחנו קוראים ל-Start Activity והמערכת מפעילה וגולשת למסך השני שאנחנו רוצים לראות שזה ה-Background Activity.

  5. 01:04

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

  6. 01:24

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

  7. 01:37

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

  8. 01:49

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

  9. 02:12

    לדוגמה אנחנו יכולים לשלוח לאקטיביטי טקסט plain, זה אומר טקסט פשוט, או איזשהו פורמט mp4 של וידאו, אז video/mp4 זה מים טייפ לתיאור וידאו מסוג mp4. המים טייפ נכלל בתוך הדאטה.

  10. 02:30

    implicit intent זה פשוט מאוד אינטנט שלא מתאר באופן ספציפי Activity. Implicit Intent מתאר אקטיביטי כללית לחיפוש על ידי הקריטריונים של ה-Intent Filter.

  11. 02:44

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

  12. 02:56

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

  13. 03:13

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

  14. 03:36

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

  15. 04:08

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

  16. 04:23

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

  17. 04:50

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

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

ההרצאה הקודמת: Save Activity State

ההרצאה הבאה: Send Email

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

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