ผู้ปฏิบัติงานที่แยกต่างหาก

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)

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

วิธีการสาธารณะ

เมื่อดาวน์โหลดเสร็จแล้ว

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

แสดงภาพ

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