במאמר הזה מוסבר על מחזור החיים של בקשות שנוצרו באמצעות Cronet ואיך לנהל אותן באמצעות שיטות הקריאה החוזרת שסופקו על ידי הספרייה.
סקירה כללית על מחזור החיים
בקשות רשת שנוצרו באמצעות ספריית Cronet מיוצגות על ידי המחלקה UrlRequest
.
חשוב להבין את המושגים הבאים כדי להבין את מחזור החיים של UrlRequest
:
- מדינות
- מצב הוא התנאי הספציפי שבו הבקשה נמצאת בזמן מסוים. אובייקטים מסוג UrlRequest שנוצרו באמצעות ספריית Cronet עוברים בין מצבים שונים במחזור החיים שלהם. מחזור החיים של הבקשה כולל מצב ראשוני, ומצבי מעבר ומצבים סופיים רבים.
UrlRequest
אמצעי תשלום- לקוחות יכולים לקרוא לשיטות ספציפיות באובייקטים של
UrlRequest
בהתאם למצב. השיטות מעבירות את הבקשה ממצב אחד למצב אחר. Callback
אמצעי תשלום- הטמעה של שיטות מהסיווג
UrlRequest.Callback
מאפשרת לאפליקציה לקבל עדכונים לגבי התקדמות הבקשה. אפשר להטמיע את שיטות הקריאה החוזרת כדי לקרוא לשיטות של אובייקטUrlRequest
שמקבלות את מחזור החיים ממצב אחד למצב אחר.
ברשימה הבאה מתואר התהליך של מחזור החיים של UrlRequest
:
- מחזור החיים נמצא במצב Started אחרי שהאפליקציה קוראת לשיטה
start()
. - השרת יכול לשלוח תגובה להפניה אוטומטית, שמעבירה את התהליך לשיטה
onRedirectReceived()
. בשיטה הזו, אפשר לבצע אחת מהפעולות הבאות בצד הלקוח:- עוקבים אחרי ההפניה לכתובת אחרת באמצעות
followRedirect()
. השיטה הזו מחזירה את הבקשה למצב Started. - לבטל את הבקשה באמצעות
cancel()
. השיטה הזו מעבירה את הבקשה לשיטהonCanceled()
, שבה האפליקציה יכולה לבצע פעולות נוספות לפני שהבקשה עוברת למצב הסופי בוטלה.
- עוקבים אחרי ההפניה לכתובת אחרת באמצעות
- אחרי שהאפליקציה מבצעת את כל ההפניות האוטומטיות, השרת שולח את כותרות התגובה והשיטה
onResponseStarted()
נקראת. הבקשה במצב המתנה לקריאה(). האפליקציה צריכה להפעיל את השיטהread()
כדי לנסות לקרוא חלק מגוף התשובה. אחרי שקוראים ל-read()
, הבקשה נמצאת במצב קריאה, ויש לה את התוצאות האפשריות הבאות:- פעולת הקריאה בוצעה בהצלחה, אבל יש עוד נתונים זמינים. הפונקציה
onReadCompleted()
מופעלת והבקשה חוזרת למצב בהמתנה לקריאה(). האפליקציה צריכה להפעיל שוב את השיטהread()
כדי להמשיך לקרוא את גוף התגובה. האפליקציה יכולה גם להפסיק לקרוא את הבקשה באמצעות השיטהcancel()
. - פעולת הקריאה הושלמה בהצלחה, ואין יותר נתונים זמינים.
השיטה
onSucceeded()
מופעלת והבקשה נמצאת עכשיו במצב הסופי Succeeded. - הפעולה של הקריאה נכשלה. השיטה
onFailed
מופעלת והמצב הסופי של הבקשה הוא נכשל.
- פעולת הקריאה בוצעה בהצלחה, אבל יש עוד נתונים זמינים. הפונקציה
התרשים הבא מציג את מחזור החיים של אובייקט UrlRequest
:
מחזור החיים של בקשת Cronet
Legend | |
---|---|
UrlRequest אמצעי תשלום |