Lenguaje

AppSearchSession.OpenBlobForWrite Método

Definición

Abre un lote de blobs de AppSearch para escribir.

[Android.Runtime.Register("openBlobForWrite", "(Ljava/util/Set;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V", "", ApiSince=36)]
public void OpenBlobForWrite(System.Collections.Generic.ICollection<Android.App.AppSearch.AppSearchBlobHandle> handles, Java.Util.Concurrent.IExecutor executor, Java.Util.Functions.IConsumer callback);
[<Android.Runtime.Register("openBlobForWrite", "(Ljava/util/Set;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V", "", ApiSince=36)>]
member this.OpenBlobForWrite : System.Collections.Generic.ICollection<Android.App.AppSearch.AppSearchBlobHandle> * Java.Util.Concurrent.IExecutor * Java.Util.Functions.IConsumer -> unit

Parámetros

handles
ICollection<AppSearchBlobHandle>

que AppSearchBlobHandleidentifica los blobs.

executor
IExecutor

Ejecutor en el que se va a invocar la devolución de llamada.

callback
IConsumer

Devolución de llamada para recibir el OpenBlobForWriteResponse.

Atributos

Comentarios

Abre un lote de blobs de AppSearch para escribir.

Un "blob" es un objeto binario grande. Se usa para almacenar una cantidad significativa de datos que no se pueden buscar, como imágenes, vídeos, archivos de audio u otros datos binarios. A diferencia de otros campos de AppSearch, los blobs se almacenan como archivos de blob en disco en lugar de en memoria y se usan android.os.ParcelFileDescriptor para leer y escribir. Esto permite un control eficaz del contenido grande y no buscable.

Una vez que haya terminado de escribir, llame #commitBlob a para confirmar los archivos de blob.

Esta llamada creará un archivo de blob vacío para cada determinado AppSearchBlobHandley se devolverá un android.os.ParcelFileDescriptor de ese archivo de blob en .OpenBlobForWriteResponse

Si el archivo de blob ya está almacenado en AppSearch y confirmado. Se producirá un error AppSearchResult con el AppSearchBlobHandlecódigo AppSearchResult#RESULT_ALREADY_EXISTS de error asociado a .

Si el archivo de blob ya está almacenado en AppSearch, pero no se confirma. Se devolverá un android.os.ParcelFileDescriptor de ese archivo de blob para continuar escribiendo.

Para un duplicado dado AppSearchBlobHandle, se devolverá el mismo android.os.ParcelFileDescriptor que apunta al mismo archivo de blob.

Los archivos de blob pendientes no se perderán ni se confirmarán automáticamente si AppSearchSession se cierran. Los archivos de blob pendientes se almacenarán en el disco en lugar de en la memoria. Puede volver a abrir AppSearchSession y volver a escribir los archivos de blob pendientes.

Un archivo de blob confirmado se considerará huérfano si no GenericDocument hace referencia a él. Los archivos de blobs pendientes no confirmados y los archivos de blobs huérfanos se limpiarán si se han creado durante un período prolongado (el valor predeterminado es 1 semana).

El devuelto OpenBlobForWriteResponse debe cerrarse después de su uso para evitar pérdidas de recursos. Si no se cierra, se producirá un agotamiento del descriptor de archivo del sistema.

Java documentación para android.app.appsearch.AppSearchSession.openBlobForWrite(java.util.Set<android.app.appsearch.AppSearchBlobHandle>, java.util.concurrent.Executor, java.util.function.Consumer<android.app.appsearch.AppSearchResult<android.app.appsearch.OpenBlobForWriteResponse>>).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a