
Intent.new Intent(this, BackgroundActivity.class) ואחריו startActivity.text/plain או video/mp4.try-catch או לבדוק מראש אם קיימת Activity מתאימה.Intent ריק, מגדירים לו action מסוג view ו-data עם URL, וקוראים ל-startActivity. המערכת תמצא את הדפדפן.הטקסט המלא של הדקות הראשונות בהרצאה «Intents» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לנושא חדש שנקרא Implicit Intents. בכדי להבין מה זה Implicit Intents אנחנו צריכים להכיר מספר מונחים בתחום ה-Intents. אז קודם כל אנחנו יודעים כבר ש-Intents זה איזשהו אובייקט שהתפקיד שלו זה לתאר ולהפעיל אקטיביטי.
אינטנט למעשה לא חייב להפעיל רק אקטיביטיז. אינטנט יכול להפעיל לדוגמה איזשהו סרוויס פנימי שקיים בתוך המכשיר וזה משהו שעדיין לא ראינו ואנחנו נגיע לזה בהמשך.
Explicit Intent זה בעצם אינטנט שמתאר אקטיביטי ספציפית להפעלה ודברים שכבר עשינו כשלמדנו על אקטיביטיז. לדוגמה, אינטנט שווה New Intent ואנחנו מתארים לו את Background Activity נקודה קלאס שזאת אקטיביטי ספציפית שאנחנו רוצים להפעיל.
לאחר מכן אנחנו קוראים ל-Start Activity והמערכת מפעילה וגולשת למסך השני שאנחנו רוצים לראות שזה ה-Background Activity.
Intent Filter זה אובייקט שמכיל קריטריונים לחיפוש ואיתור אקטיביטי. למעשה הוא מכיל עד שלושה קריטריונים שאנחנו יכולים להגדיר. הקריטריון הראשון נקרא קטגוריה שזה בעצם איזשהו סוג כללי של אקטיביטי שאנחנו רוצים להציג.
לדוגמה יכול להיות שאנחנו רוצים להציג משהו שקשור לcontacts או משהו שקשור לגלריה. קריטריון שני נקרא Action וזה בעצם הפעולה הספציפית שאנחנו רוצים לבצע עם האקטיביטי שאנחנו מחפשים.
לדוגמה, ויכול להיות שאנחנו רק רוצים to view it, לצפות בה או גם לערוך אותה. קריטריון שלישי נקרא דאטה וזה בעצם לינק לאן אנחנו רוצים לגלוש.
זה יכול להיות לינק לאתר ספציפי שאנחנו רוצים להציג, זה יכול להיות לינק פנימי לאיזושהי אקטיביטי ספציפית אחרת במכשיר, במקרה הזה זה קלנדר והדאטה מכיל גם משהו שנקרא mind type שזה בעצם איזשהו סוג של קובץ או פורמט של קובץ או של תוכן שאנחנו יכולים לשלוח.
לדוגמה אנחנו יכולים לשלוח לאקטיביטי טקסט plain, זה אומר טקסט פשוט, או איזשהו פורמט mp4 של וידאו, אז video/mp4 זה מים טייפ לתיאור וידאו מסוג mp4. המים טייפ נכלל בתוך הדאטה.
implicit intent זה פשוט מאוד אינטנט שלא מתאר באופן ספציפי Activity. Implicit Intent מתאר אקטיביטי כללית לחיפוש על ידי הקריטריונים של ה-Intent Filter.
המערכת תחפש בשבילנו את האקטיביטי להצגה. עכשיו, אם המערכת תמצא בדיוק אקטיביטי אחת שמתאימה לחיפוש שלנו, אז היא מיד תריץ אותה.
אם המערכת תמצא מספר אקטיביטיז במספר אפליקציות שיכולות לשרת אותנו, אז היא תפתח לנו App Chooser ובעצם איזושהי רשימה של כל האפליקציות שיכולות לתת לנו דרישה והיוזר יכול לבחור אחת איזה שהוא רוצה.
אם המערכת לא תמצא אף אקטיביטי בהתאם לקריטריונים שהגדרנו אז היא תעלה אקספצ'ן ואנחנו יכולים לתפוס את האקספצ'ן עם drycatch או שאנחנו יכולים לכתוב איזושהי שורת קוד ששנייה לפני שאנחנו בעצם מחפשים את האקטיביטי אנחנו רוצים לבדוק האם באמת אקטיביטי כזאת קיימת כן או לא.
אימפליסיט אינטנט יכול להיות הקוד הבא, אנחנו יכולים ליצור אובייקט אינטנט ריק מבלי לתאר לו איזו אקטיביטי אנחנו רוצים להציג, לאחר מכן להגדיר לו את הקריטריונים שאנחנו רוצים לחפש לדוגמה action זה view וdata זה url ספציפי ואז ברגע שנריץ את האקטיביטי הזאת על ידי start activity אז המערכת תחפש לנו איזו אקטיביטי מוגדרת על ידי קריטריוני הריפוס האלה.
במקרה הזה זה יהיה הבראוזר והבראוזר יכול להציג לנו את ה-URL הזה. לפיכך אינטנט יכול להכיל מספר דברים. דבר ראשון הוא יכול להכיל איזו אקטיביטי אנחנו רוצים להריץ.
זה יהיה כמובן על ידי Explicit Intent. אינטנט יכול להכיל את הקטגוריה שאנחנו רוצים לחפש ב-Intent Filter. אינטנט יכול להכיל אקשן כחלק מהאינטנט פילטר או דאטה ואקסטראז אקסטראז זה המידע הנוסף ששלחנו לאקטיביטי אינטנט יכול להכיל פלאגס שזה בעצם כל מיני דגלים עבור התנהגויות של האקטיביטי
שאנחנו רוצים להציג פנדינג אינטנט זה בעצם מונח נוסף שחשוב שנכיר וזה איזשהו ראפר שעוטף אינטנט פנדינג אינטנט מאפשר לשלוח אינטנט לגורם אחר, איזשהו רכיב או סרוויס או איזושהי אקטיביטי אחרת, שהם יפעילו את האינטנט שנמצא בתוך הפנדינג אינטנט.