עבודה מבודדת

public interface IsolatedWorker

android.adservices.ondevicepersonalization.IsolatedWorker


ממשק עם שיטות שצריך להטמיע כדי לטפל בבקשות ממערכת ההפעלה ל-IsolatedService. ה-IsolatedService יוצר מופע של IsolatedWorker בכל בקשה וקורא לאחת מהשיטות הבאות, בהתאם לסוג הבקשה. ה-IsolatedService קורא ל-method בשרשור של 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 במקרה של שגיאה. אם קוראים ל-REMOTE_DATA עם 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 בשגיאה. אם קוראים ל-event_log עם null, לא נכתבים נתונים בטבלה EVENTS.

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

onExecute

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

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

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

consumer Consumer: קריאה חוזרת שמקבלת את התוצאה ExecuteOutput. צריך להפעיל אותו עם הערך null במקרה של שגיאה. השגיאה מועברת לאפליקציה הקוראת בתור OnDevicePersonalizationException עם קוד השגיאה OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED. כדי למנוע הדלפת מידע פרטי לאפליקציית השיחות, אין דיווח מפורט יותר על השגיאות. אם ה-IsolatedService צריך לדווח על נתונים סטטיסטיים של שגיאות לקצה העורפי שלו, צריך לאכלס את ExecuteOutput בנתוני שגיאות לרישום ביומן ולהסתמך על Federated 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: שיחה חוזרת שתופעל בסיום. הערך לא יכול להיות null.