עבודה מבודדת

public interface IsolatedWorker

android.adservices.ondevicepersonalization.IsolatedWorker


ממשק עם methods שצריך להטמיע כדי לטפל בבקשות ממערכת ההפעלה ל-IsolatedService. השדה IsolatedService יוצר מופע של IsolatedWorker ב- כל בקשה מפעילה את אחת מהשיטות הבאות, בהתאם לסוג הבקשה. ה-IsolatedService מפעיל את ה-method ב-thread של Binder, וה-IsolatedWorker אמור להפחית את העומס של פעולות ממושכות לשרשור של עובדים. נעשה שימוש בפרמטר הצרכן של כל שיטה כדי להחזיר תוצאות.

סיכום

שיטות ציבוריות

default void onDownloadCompleted(DownloadCompletedInput input, Consumer<DownloadCompletedOutput> consumer)

טיפול בהורדה שהושלמה.

default void onEvent(EventInput input, Consumer<EventOutput> consumer)

טיפול באירוע שמופעל על-ידי בקשה לכתובת URL למעקב EventUrlProvider שסופקה על ידי הפלטפורמה, שהוטמעה בפלט ה-HTML שהוחזר על-ידי הפלטפורמה onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer).

default void onExecute(ExecuteInput input, Consumer<ExecuteOutput> consumer)

מטפל בבקשה מאפליקציה.

default void onRender(RenderInput input, Consumer<RenderOutput> consumer)

יוצר HTML עבור התוצאות שהוחזרו כתוצאה onExecute(android.adservices.ondevicepersonalization.ExecuteInput, java.util.function.Consumer)

default void onTrainingExample(TrainingExampleInput input, Consumer<TrainingExampleOutput> consumer)

ליצור דוגמה אחת לאימון שמשמשת למשימת חישוב מאוחדת.

שיטות ציבוריות

ההורדה הושלמה

public void onDownloadCompleted (DownloadCompletedInput input, 
                Consumer<DownloadCompletedOutput> consumer)

טיפול בהורדה שהושלמה. הפלטפורמה מורידה תוכן באמצעות הפרמטרים שמוגדרים ב מניפסט החבילה של IsolatedService, קורא לפונקציה הזו לאחר ההורדה הושלם, ומעדכן את הטבלה REMOTE_DATA מ- IsolatedService#getRemoteData(RequestToken) מהתוצאה של השיטה הזו.

פרמטרים
input DownloadCompletedInput: הורדת הפרמטרים של ה-handler. הערך הזה לא יכול להיות null.

consumer Consumer: קריאה חוזרת (callback) שמקבלת את התוצאה. צריך להתקשר עם null בתאריך שגיאה. אם נשלחת קריאה באמצעות null, לא מתבצעים עדכונים בטבלה REMOTE_DATA.

אם השיטה הזו מחזירה RuntimeException, לא מתבצעים עדכונים טבלה REMOTE_DATA.

onEvent

public void onEvent (EventInput input, 
                Consumer<EventOutput> consumer)

טיפול באירוע שמופעל על-ידי בקשה לכתובת URL למעקב EventUrlProvider שסופקה על ידי הפלטפורמה, שהוטמעה בפלט ה-HTML שהוחזר על-ידי הפלטפורמה onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer). הפלטפורמה מעדכנת את הטבלה Events באמצעות EventOutput#getEventLogRecord()

פרמטרים
input EventInput: הפרמטרים שדרושים כדי לחשב נתוני אירועים. הערך הזה לא יכול להיות null.

consumer Consumer: קריאה חוזרת (callback) שמקבלת את התוצאה. צריך להתקשר עם null בתאריך שגיאה. אם נשלחת קריאה באמצעות null, לא ייכתבו נתונים בטבלת האירועים.

אם השיטה הזו גורמת לשגיאה RuntimeException, לא נכתבים נתונים ל-Events טבלה.

בביצוע

public void onExecute (ExecuteInput input, 
                Consumer<ExecuteOutput> consumer)

מטפל בבקשה מאפליקציה. לשיטה הזו מתבצעת קריאה כשאפליקציה קוראת ל-OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver) שמפנה אל IsolatedService.

פרמטרים
input ExecuteInput: מבקשים פרמטרים מאפליקציית הקריאה. הערך הזה לא יכול להיות null.

consumer Consumer: קריאה חוזרת (callback) שמקבלת את התוצאה ExecuteOutput. צריך להתקשר עם null בשגיאה. השגיאה תופץ לאפליקציית השיחות OnDevicePersonalizationException עם קוד השגיאה OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED. כדי למנוע הדלפת מידע פרטי נתונים לאפליקציית השיחות, דיווח מפורט יותר על שגיאות לא זמין. אם IsolatedService צריך לדווח נתונים סטטיסטיים של שגיאות לקצה העורפי שלו, צריך לאכלס את ExecuteOutput בנתוני שגיאות לרישום ביומן, ולהסתמך על נתונים מאוחדים של Analytics לצורך צבירה בדוחות השגיאות.

אם השיטה הזו גורמת לשגיאה RuntimeException, הנתון הזה מדווח גם שיחות לאפליקציות כOnDevicePersonalizationException עם קוד השגיאה OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

onRender

public void onRender (RenderInput input, 
                Consumer<RenderOutput> consumer)

יוצר HTML עבור התוצאות שהוחזרו כתוצאה onExecute(android.adservices.ondevicepersonalization.ExecuteInput, java.util.function.Consumer) בוצעה שיחה כשאפליקציית לקוח מתקשרת OnDevicePersonalizationManager#requestSurfacePackage(SurfacePackageToken, IBinder, int, int, int, java.util.concurrent.Executor, OutcomeReceiver) הפלטפורמה תעבד את ה-HTML הזה ב-WebView בתוך מסגרת.

פרמטרים
input RenderInput: הפרמטרים לבקשת העיבוד. הערך הזה לא יכול להיות null.

consumer Consumer: קריאה חוזרת (callback) שמקבלת את התוצאה. צריך להתקשר עם null בתאריך שגיאה. השגיאה תופץ לאפליקציית השיחות כ-OnDevicePersonalizationException עם קוד השגיאה OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

אם השיטה הזו גורמת לשגיאה RuntimeException, גם הדיווח על ההתקשרות מתבצע אפליקציות בתור OnDevicePersonalizationException עם קוד השגיאה OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

דוגמה לאימון

public void onTrainingExample (TrainingExampleInput input, 
                Consumer<TrainingExampleOutput> consumer)

ליצור דוגמה אחת לאימון שמשמשת למשימת חישוב מאוחדת.

פרמטרים
input TrainingExampleInput: הפרמטרים שנדרשים כדי ליצור את דוגמת האימון. הערך הזה לא יכול להיות null.

consumer Consumer: קריאה חוזרת (callback) כשתופעל בסיום. הערך הזה לא יכול להיות null.