תהליך אסינכרוני
הוא תהליך המתבצע ברקע
AsyncTask
(אחד מאפשרויות לקיים תהליך אסינכרוני)
A – syn – chrony
לא מתוזמן עם משהו אחר
)עם תהליך ראשי)
AsyncTask
לא
ביחד, בהתאים
זמן
לביצוע AsyncTask
יש לבנות מחלקה נפרדת
(אפשר ואפילו נוח כמחלקה פנימית)
היורשת מ-AsyncTask
מחלקה חייבת להכיל לפחות פעולה אחת:
"מה לבצע ברקע"
AsyncTask
תהליך ראשי
("זרם GUI")
מאפשר
גישה
למרכיבים
זימון תהליך רקע
פעולה
doInBackground()
AsyncTask
פעולה
doInBackground()
AsyncTask
בגלל של-AsyncTask
אין גישה לרכיבים של ממשק המשתמש,
עלולה להיווצר תחושה
"לא קורה כלום", "משהו תקועה באפליקציה"...
לכן מאוד מקובל להפעיל לפני ביצוע AsyncTask
רכיב עם אנימציה
AsyncTask
על מנת לעשות שימוש בAsyncTask-
ידידותי יותר (למשתמש!)
אפשר בנוסף לפעולה doInBackground
להוסיף למחלקה עוד שתי פעולות:
AsyncTask
קודם כל
בסוף
עקרי
AsyncTask
על מנת לקבל עדכונים בזמן הביצוע
של doInBackground()
קיימת אפשרות להשתמש
בעוד שתי פעולות למחלקה אסינכרונית:
אז שוב מקבלים גישה ל-GUI
AsyncTask
יציאות קצרות:
הם לא עוצרות(!) ביצוע תהליך רקע!
AsyncTask
AsyncTask
בכותרת של המחלקת AsyncTask
מציינים שלושה סוגים:
לא מדובר במשתנים!
AsyncTask
מקובל למקם את הפעולות
בתוך מחלקה אסינכרונית לפי "סדר הגיוני"
AsyncTask
דוגמאות
AsyncTask
מעתיקים קובץ
מתיקיה raw
לתיקיה פנימית
העתקת קובץ (offline)
AsyncTask
העתקת קובץ (offline)
AsyncTask
העתקת קובץ (offline)
לא מקבלת שום פרמטר
לא מציגה מידע תוך כדי ביצוע
לא מחזירה נתונים
AsyncTask
העתקת קובץ (offline)
AsyncTask
העתקת קובץ (offline)
AsyncTask
העתקת קובץ (offline)
זימון מחלקה
בלי פרמטרים
תוצאה
AsyncTask
קריאת קובץ (online)
אישור גישה לאינטרנט
ב-AndroidManifest
כתובת הקובץ לקריאה
AsyncTask
קריאת קובץ (online)
יצירת עצם מסוג "מחלקה אסינכרונית
זימון המחלקה אסינכרונית כולל העברת פרמטר מסוג "מחרוזת" (כתובת")
AsyncTask
קריאת קובץ (online)
מקבלת פרמטר מסוג String
מציגה מידע תוך כדי ביצוע בעזרת ערך מסוג Integer
לא מחזירה נתונים
AsyncTask
העתקת קובץ (online)
פעולה לפני ביצוע אסינכרוני (יש גישה לממשק!)
AsyncTask
העתקת קובץ (online)
בכותרת הפעולה "מוציאים" את הפרמטר הנשלח
AsyncTask
העתקת קובץ (online)
הופכים מחרוזת לכתובת של ממש (URL)
יוצרים חיבור לכתובת (קובץ)
פותחים "ערוץ גישה וזרימה" לכתובת (קובץ)
AsyncTask
העתקת קובץ (online)
בכל סיבוב מבצעים
"יציאה זמנית"
ל"פעולת דיווח"
AsyncTask
העתקת קובץ (online)
"פעולת דיווח"
(יש לה גישה לממשק!)
ממנה הוזרים (אוטומטי)
לפעולה doInBackground
AsyncTask
העתקת קובץ (online)
פעולה אחרי ביצוע אסינכרוני (יש גישה לממשק!)
AsyncTask