IsolatedWorker

public interface IsolatedWorker

android.adservices.ondevicepersonalization.IsolatedWorker


อินเทอร์เฟซกับเมธอดที่ต้องติดตั้งใช้งานเพื่อจัดการคําขอจากระบบปฏิบัติการไปยัง IsolatedService IsolatedService จะสร้างอินสแตนซ์ของ IsolatedWorker ในคำขอแต่ละรายการและเรียกใช้เมธอดใดเมธอดหนึ่งด้านล่างนี้ โดยขึ้นอยู่กับประเภทของคำขอ IsolatedService จะเรียกใช้เมธอดในเธรด 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)

สร้างตัวอย่างการฝึกแบบเดี่ยวที่ใช้สำหรับงานการประมวลผลแบบรวมศูนย์

เมธอดสาธารณะ

onDownloadCompleted

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

จัดการการดาวน์โหลดที่เสร็จสมบูรณ์ แพลตฟอร์มจะดาวน์โหลดเนื้อหาโดยใช้พารามิเตอร์ที่กําหนดไว้ในไฟล์ Manifest ของIsolatedService เรียกใช้ฟังก์ชันนี้หลังจากการดาวน์โหลดเสร็จสมบูรณ์ และอัปเดตตาราง REMOTE_DATA จากIsolatedService#getRemoteData(RequestToken) ด้วยผลลัพธ์ของเมธอดนี้

พารามิเตอร์
input DownloadCompletedInput: พารามิเตอร์ตัวแฮนเดิลการดาวน์โหลด ค่านี้ต้องไม่เป็น null

consumer Consumer: การเรียกกลับที่ได้รับผลลัพธ์ ควรเรียกใช้ด้วย null เมื่อมีข้อผิดพลาด หากเรียกใช้ด้วย null ระบบจะไม่อัปเดตตาราง REMOTE_DATA

หากวิธีนี้ส่ง RuntimeException ระบบจะไม่อัปเดตตาราง REMOTE_DATA

เหตุการณ์

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: การเรียกกลับที่ได้รับผลลัพธ์ ควรเรียกใช้ด้วย null เมื่อมีข้อผิดพลาด หากเรียกใช้ด้วย null ระบบจะไม่เขียนข้อมูลลงในตาราง EVENTS

หากเมธอดนี้แสดง 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: การเรียกกลับที่ได้รับผลลัพธ์ 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: การเรียกกลับที่ได้รับผลลัพธ์ ควรเรียกใช้ด้วย 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