語言

AppSearchSession.OpenBlobForWrite 方法

定義

會開啟一批 AppSearch 的 Blobs 來寫作。

[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

參數

handles
ICollection<AppSearchBlobHandle>

就是 AppSearchBlobHandle標示斑點的 s。

executor
IExecutor

執行人,用以啟動回撥。

callback
IConsumer

回撥以接收 OpenBlobForWriteResponse。

屬性

備註

會開啟一批 AppSearch 的 Blobs 來寫作。

「斑點」是一個大型的二元物體。 它用來儲存大量無法搜尋的資料,例如圖片、影片、音訊檔案或其他二進位資料。 與 AppSearch 的其他欄位不同,blob 是以磁碟上的 blob 檔案形式儲存,而非記憶體,並用於 android.os.ParcelFileDescriptor 讀寫。 這能有效處理大型且無法搜尋的內容。

寫入完成後,呼叫 #commitBlob 提交 blob 檔案。

此呼叫會為每個給定 AppSearchBlobHandle的 建立一個空的 blob 檔案,而該 blob 檔案中的一個 android.os.ParcelFileDescriptor 會以 OpenBlobForWriteResponse。

如果 blob 檔案已經儲存在 AppSearch 裡並已提交。 AppSearchResult失敗且錯誤代碼AppSearchResult#RESULT_ALREADY_EXISTS會與 AppSearchBlobHandle。

如果 blob 檔案已經儲存在 AppSearch 裡但還沒提交, 該 blob 檔案的 A android.os.ParcelFileDescriptor 會被回傳以繼續寫入。

對於給定的重複 AppSearchBlobHandle,會回傳指向 android.os.ParcelFileDescriptor 相同的 blob 檔案。

待處理的 blob 檔案如果關閉不會遺失或自動提交 AppSearchSession 。 待處理的 blob 檔案會儲存在磁碟中,而非記憶體中。 你可以重新開啟 AppSearchSession 並重寫待處理的 blob 檔案。

若已提交的 blob 檔沒有 GenericDocument 人引用,則會被視為孤兒檔。 未提交的待處理 blob 檔案和孤兒 blobs 檔案若建立時間較長(預設為 1 週),將會被清理。

回流 OpenBlobForWriteResponse 管使用後必須關閉,以避免資源外洩。 未關閉會導致系統檔案描述符耗盡。

Java 文件 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>>)。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於