Pekerja Terisolasi

public interface IsolatedWorker

android.adservices.ondevicepersonalization.IsolatedWorker


Antarmuka dengan metode yang perlu diimplementasikan untuk menangani permintaan dari OS ke IsolatedService. IsolatedService membuat instance IsolatedWorker pada setiap permintaan dan memanggil salah satu metode di bawah ini, bergantung pada jenis permintaannya. IsolatedService memanggil metode pada thread Binder dan IsolatedWorker harus mengalihkan operasi yang berjalan lama ke thread pekerja. Parameter konsumen dari setiap metode digunakan untuk menampilkan hasil.

Ringkasan

Metode publik

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

Menangani download yang telah selesai.

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

Menangani peristiwa yang dipicu oleh permintaan ke URL pelacakan yang disediakan platform EventUrlProvider yang disematkan dalam output HTML yang ditampilkan oleh onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer).

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

Menangani permintaan dari aplikasi.

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

Menghasilkan HTML untuk hasil yang dikembalikan sebagai hasil dari onExecute(android.adservices.ondevicepersonalization.ExecuteInput, java.util.function.Consumer).

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

Membuat satu contoh pelatihan yang digunakan untuk tugas komputasi gabungan.

Metode publik

onDownloadSelesai

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

Menangani download yang telah selesai. Platform mendownload konten menggunakan parameter yang ditentukan dalam manifes paket IsolatedService, memanggil fungsi ini setelah download selesai, dan memperbarui tabel REMOTE_DATA dari IsolatedService#getRemoteData(RequestToken) dengan hasil metode ini.

Parameter
input DownloadCompletedInput: Mendownload parameter pengendali. Nilai ini tidak boleh null.

consumer Consumer: Callback yang menerima hasil. Harus dipanggil dengan null aktif mengalami {i>error.<i} Jika dipanggil dengan null, tidak ada pembaruan yang dibuat pada tabel REMOTE_DATA.

Jika metode ini menampilkan RuntimeException, tidak ada update yang akan dibuat pada tabel REMOTE_DATA.

diAcara

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

Menangani peristiwa yang dipicu oleh permintaan ke URL pelacakan yang disediakan platform EventUrlProvider yang disematkan dalam output HTML yang ditampilkan oleh onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer). Platform ini memperbarui tabel EVENTS dengan EventOutput#getEventLogRecord().

Parameter
input EventInput: Parameter yang diperlukan untuk menghitung data peristiwa. Nilai ini tidak boleh null.

consumer Consumer: Callback yang menerima hasil. Harus dipanggil dengan null aktif mengalami {i>error.<i} Jika dipanggil dengan null, tidak ada data yang ditulis ke tabel EVENTS.

Jika metode ini menampilkan RuntimeException, tidak ada data yang akan ditulis ke EVENTS tabel sementara.

{i>onExecute<i}

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

Menangani permintaan dari aplikasi. Metode ini dipanggil saat aplikasi memanggil OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver) yang mengacu ke metode IsolatedService.

Parameter
input ExecuteInput: Meminta Parameter dari aplikasi panggilan. Nilai ini tidak boleh null.

consumer Consumer: Callback yang menerima hasil ExecuteOutput. Harus dipanggil dengan null mengalami error. Error tersebut disebarkan ke aplikasi panggilan sebagai OnDevicePersonalizationException dengan kode error OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED. Untuk menghindari kebocoran informasi pribadi ke aplikasi panggilan, pelaporan error yang lebih mendetail tidak tersedia. Jika IsolatedService perlu melaporkan statistik error ke backend-nya, statistik tersebut harus mengisi ExecuteOutput dengan data error untuk logging, dan mengandalkan Federated Analytics untuk menggabungkan laporan error.

Jika metode ini menampilkan RuntimeException, yang juga dilaporkan ke memanggil aplikasi sebagai OnDevicePersonalizationException dengan kode error OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

{i>onRender<i}

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

Menghasilkan HTML untuk hasil yang dikembalikan sebagai hasil dari onExecute(android.adservices.ondevicepersonalization.ExecuteInput, java.util.function.Consumer). Dipanggil saat aplikasi klien memanggil OnDevicePersonalizationManager#requestSurfacePackage(SurfacePackageToken, IBinder, int, int, int, java.util.concurrent.Executor, OutcomeReceiver). Platform akan merender HTML ini dalam WebView di dalam fence {i>frame<i}.

Parameter
input RenderInput: Parameter untuk permintaan render. Nilai ini tidak boleh null.

consumer Consumer: Callback yang menerima hasil. Harus dipanggil dengan null aktif mengalami {i>error.<i} Error tersebut disebarkan ke aplikasi panggilan sebagai OnDevicePersonalizationException dengan kode error OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

Jika metode ini menampilkan RuntimeException, tindakan tersebut juga dilaporkan ke memanggil aplikasi sebagai OnDevicePersonalizationException dengan kode error OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

onTrainingContoh

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

Membuat satu contoh pelatihan yang digunakan untuk tugas komputasi gabungan.

Parameter
input TrainingExampleInput: Parameter yang diperlukan untuk menghasilkan contoh pelatihan. Nilai ini tidak boleh null.

consumer Consumer: Callback yang akan dipanggil setelah selesai. Nilai ini tidak boleh null.