AppSearchSession.OpenBlobForWrite 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
會開啟一批 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 管使用後必須關閉,以避免資源外洩。 未關閉會導致系統檔案描述符耗盡。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。