ผู้ปฏิบัติงานที่แยกต่างหาก
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 ติดตามผล |
default
void
|
onExecute(ExecuteInput input, Consumer<ExecuteOutput> consumer)
จัดการคำขอจากแอป |
default
void
|
onRender(RenderInput input, Consumer<RenderOutput> consumer)
สร้าง HTML สำหรับผลลัพธ์ที่ส่งคืนเนื่องจาก
|
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
หากวิธีนี้ส่ง |
เหตุการณ์
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
หากวิธีนี้ส่ง |
ดำเนินการ
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 แบบรวมศูนย์ในการรวบรวมข้อมูล
รายงานข้อผิดพลาด
หากวิธีนี้ส่ง |
แสดงภาพ
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
หากวิธีนี้ทำให้เกิด |
ตัวอย่างการฝึกอบรม
public void onTrainingExample (TrainingExampleInput input, Consumer<TrainingExampleOutput> consumer)
สร้างตัวอย่างการฝึกรายการเดียวที่ใช้สำหรับงานการคำนวณแบบรวมศูนย์
พารามิเตอร์ | |
---|---|
input |
TrainingExampleInput : พารามิเตอร์ที่จำเป็นต่อการสร้างตัวอย่างการฝึก
ค่านี้ต้องไม่เป็น null |
consumer |
Consumer : การเรียกกลับที่จะเรียกใช้เมื่อเสร็จสมบูรณ์
ค่านี้ต้องไม่เป็น null |