top of page
ActivityResultLauncher

עד עכשיו למדנו על ביצוע במקביל של פעולות שאינן קשורות אחת לשניה באמצעות threads, ועל הדרך לתקשר ולסנכרן ביניהן את המידע שמתקבל באמצעות callbacks כפי שראינו כאן.

ActivityResultLauncher עובד על אותם עקרונות ומשמש לאותו תרחיש בדיוק: ​שילוח של פעילות או משימה כלשהי שאיננו יודעים מתי ואם תתבצע אך כשתסתיים ירוץ קוד של callback שיעשה משהו עם התוצאה הזו שהתקבלה.

 

נשתמש ב-ActivityResultLauncher ולא ב-callback רגיל כי הוא מקל לנו את החיים כשמדובר לא סתם על משימות קוד אלא על כאלו שקשורות ספציפית לשימוש באמצעים שנותנת לנו מערכת ההפעלה אנדרואיד.

 

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

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

דמיינו את זה ככה :

איך הכל מתחבר בקוד?
הקוד השלם

קובץ ה-layout של MainActivity בסיסי ביותר - רק בשביל להראות את ה-ImageView על המסך :

הקוד של MainActivity גם הוא בסיסי ביותר ומכיל את כל הקוד שהודגם למעלה. הקוד גורם למצלמה להתחיל לפעול בשיגור של ה-intent כשהאפליקציה נפתחת על מנת להדגים את פעולת ה-ActivityResultLauncher :

©  created by Roee Weisbert

bottom of page