IsolatedWorker

public interface IsolatedWorker

android.adservices.ondevicepersonalization.IsolatedWorker


OS에서 IsolatedService에 대한 요청을 처리하기 위해 구현해야 하는 메서드와 상호작용합니다. IsolatedService는 각 요청에 IsolatedWorker 인스턴스를 만들고 요청 유형에 따라 아래 메서드 중 하나를 호출합니다. IsolatedService는 바인더 스레드에서 메서드를 호출하고 IsolatedWorker는 장기 실행 작업을 작업자 스레드로 오프로드해야 합니다. 각 메서드의 소비자 매개변수는 결과를 반환하는 데 사용됩니다.

요약

공개 메서드

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

완료된 다운로드를 처리합니다.

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

onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer)에서 반환한 HTML 출력에 삽입된 플랫폼 제공 추적 URL EventUrlProvider에 대한 요청에 의해 트리거된 이벤트를 처리합니다.

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

앱의 요청을 처리합니다.

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

onExecute(android.adservices.ondevicepersonalization.ExecuteInput, java.util.function.Consumer)의 결과로 반환된 결과의 HTML을 생성합니다.

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

제휴 계산 작업에 사용되는 단일 학습 예시를 생성합니다.

공개 메서드

onDownloadCompleted

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

완료된 다운로드를 처리합니다. 플랫폼은 IsolatedService의 패키지 매니페스트에 정의된 매개변수를 사용하여 콘텐츠를 다운로드하고, 다운로드가 완료되면 이 함수를 호출하며, 이 메서드의 결과로 IsolatedService#getRemoteData(RequestToken)의 REMOTE_DATA 테이블을 업데이트합니다.

매개변수
input DownloadCompletedInput: 핸들러 매개변수를 다운로드합니다. 이 값은 null일 수 없습니다.

consumer Consumer: 결과를 수신하는 콜백입니다. 오류 시 null를 사용하여 호출해야 합니다. null를 사용하여 호출하면 REMOTE_DATA 테이블이 업데이트되지 않습니다.

이 메서드에서 RuntimeException이 발생하면 REMOTE_DATA 테이블이 업데이트되지 않습니다.

onEvent

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

onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer)에서 반환한 HTML 출력에 삽입된 플랫폼 제공 추적 URL EventUrlProvider에 대한 요청에 의해 트리거된 이벤트를 처리합니다. 플랫폼은 EventOutput#getEventLogRecord()로 EVENTS 테이블을 업데이트합니다.

매개변수
input EventInput: 이벤트 데이터를 계산하는 데 필요한 매개변수입니다. 이 값은 null일 수 없습니다.

consumer Consumer: 결과를 수신하는 콜백입니다. 오류 시 null를 사용하여 호출해야 합니다. null를 사용하여 호출하면 데이터가 EVENTS 테이블에 기록되지 않습니다.

이 메서드에서 RuntimeException이 발생하면 EVENTS 테이블에 데이터가 기록되지 않습니다.

실행

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

앱의 요청을 처리합니다. 이 메서드는 앱이 이름이 지정된 IsolatedService를 참조하는 OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver)를 호출할 때 호출됩니다.

매개변수
input ExecuteInput: 호출 앱의 요청 매개변수입니다. 이 값은 null일 수 없습니다.

consumer Consumer: 결과 ExecuteOutput를 수신하는 콜백입니다. 오류 시 null와 함께 호출해야 합니다. 오류는 오류 코드가 OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILEDOnDevicePersonalizationException로 호출 앱에 전달됩니다. 비공개 데이터가 호출 앱에 유출되는 것을 방지하기 위해 더 자세한 오류 보고는 사용할 수 없습니다. IsolatedService에서 백엔드에 오류 통계를 보고해야 하는 경우 로깅을 위한 오류 데이터로 ExecuteOutput를 채우고 제휴 분석을 사용하여 오류 보고서를 집계해야 합니다.

이 메서드에서 RuntimeException이 발생하면 이 역시 오류 코드 OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED와 함께 앱 호출에 OnDevicePersonalizationException으로 보고됩니다.

onRender

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

onExecute(android.adservices.ondevicepersonalization.ExecuteInput, java.util.function.Consumer)의 결과로 반환된 결과의 HTML을 생성합니다. 클라이언트 앱이 OnDevicePersonalizationManager#requestSurfacePackage(SurfacePackageToken, IBinder, int, int, int, java.util.concurrent.Executor, OutcomeReceiver)를 호출할 때 호출됩니다. 플랫폼은 분리 프레임 내의 WebView에서 이 HTML을 렌더링합니다.

매개변수
input RenderInput: 렌더링 요청의 매개변수입니다. 이 값은 null일 수 없습니다.

consumer Consumer: 결과를 수신하는 콜백입니다. 오류 시 null를 사용하여 호출해야 합니다. 오류는 오류 코드가 OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILEDOnDevicePersonalizationException로 호출 앱에 전파됩니다.

이 메서드에서 RuntimeException이 발생하면 이 역시 오류 코드 OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED와 함께 앱을 OnDevicePersonalizationException로 호출하도록 보고됩니다.

onTrainingExample

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

제휴 계산 작업에 사용되는 단일 학습 예시를 생성합니다.

매개변수
input TrainingExampleInput: 학습 예를 생성하는 데 필요한 매개변수입니다. 이 값은 null일 수 없습니다.

consumer Consumer: 완료 시 호출될 콜백입니다. 이 값은 null일 수 없습니다.