語言

ContentProvider 類別

定義

內容提供者是 Android 應用程式的主要建構組件之一,負責為應用程式提供內容。

[Android.Runtime.Register("android/content/ContentProvider", DoNotGenerateAcw=true)]
public abstract class ContentProvider : Java.Lang.Object, Android.Content.IComponentCallbacks2, IDisposable
[<Android.Runtime.Register("android/content/ContentProvider", DoNotGenerateAcw=true)>]
type ContentProvider = class
    inherit Object
    interface IComponentCallbacks
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IComponentCallbacks2
繼承
ContentProvider
衍生
屬性
實作

備註

內容提供者是 Android 應用程式的主要建構組件之一,負責為應用程式提供內容。 它們封裝資料,並透過單一 ContentResolver 介面提供給應用程式。 只有在需要在多個應用程式間共享資料時,才需要內容提供者。 例如,聯絡人資料被多個應用程式使用,必須儲存在內容提供者中。 如果你不需要在多個應用程式間分享資料,你可以直接 android.database.sqlite.SQLiteDatabase透過 .

當透過 提出 ContentResolver 請求時,系統會檢查該 URI 的權限,並將請求轉交給該權限註冊的內容提供者。 內容提供者可以隨意解讀 URI 的其他部分。 這 UriMatcher 門課對於解析 URI 很有幫助。

主要需要實作的方法包括:<ul><li>#onCreate 用於初始化提供者</li><li>#query 將資料回傳給呼叫者</li><li>#insert 將新資料插入內容提供者</li><li>#update 更新內容提供者<中現有資料/LI><LI>#delete 刪除內容提供者<資料/LI LI><>#getType該系統回傳內容提供者</li></ul 中 MIME 類型的資料>

資料存取方法(如 #insert 和 #update)可以同時從多個執行緒呼叫,且必須是執行緒安全的。 其他方法(例如 #onCreate)僅從應用程式主執行緒呼叫,必須避免執行冗長的操作。 請參閱方法描述以了解它們預期的執行緒行為。

請求 ContentResolver 會自動轉發到適當的 ContentProvider 實例,因此子類別不必擔心跨程序呼叫的細節。

<div class=“特殊參考”><h3>開發者指南</h3>

欲了解更多使用內容提供者的資訊,請參閱 內容提供者 開發者指南。

</div>

Java 文件 android.content.ContentProvider。

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

建構函式

名稱 Description
ContentProvider()

建立一個 ContentProvider 實例。

ContentProvider(IntPtr, JniHandleOwnership)

用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。

屬性

名稱 Description
CallingAttributionSource

取得通話應用程式的歸因來源。

CallingAttributionTag

回傳發起當前執行緒請求的呼叫者的歸因標籤。

CallingPackage

回傳發起當前執行緒請求的呼叫者的套件名稱。

CallingPackageUnchecked

回傳發起當前執行緒請求的呼叫者的套件名稱。

Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Context

取得此提供者正在執行的上下文。

Handle

底層 Android 實例的帳號。

(繼承來源 Object)
IsTemporary

如果此實例是暫時性內容提供者,則回傳為真。

JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

內容提供者是 Android 應用程式的主要建構組件之一,負責為應用程式提供內容。

(繼承來源 JavaObject)
JniPeerMembers

取得用於調用此 Java 節點成員的 JNI 元資料。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
ReadPermission
已淘汰.

請回傳該內容提供者的唯讀權限名稱。 -或- 更改讀取內容提供者資料所需的權限。

ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

WritePermission
已淘汰.

回傳讀寫存取本內容提供者所需的權限名稱。 -或- 更改內容提供者中讀寫資料所需的權限。

方法

名稱 Description
ApplyBatch(IList<ContentProviderOperation>)

覆寫此設定以處理執行一批操作的請求,否則預設實作會反覆處理這些操作並呼叫 ContentProviderOperation#apply 每一個操作。

ApplyBatch(String, IList<ContentProviderOperation>)

覆寫此設定以處理執行一批操作的請求,否則預設實作會反覆處理這些操作並呼叫 ContentProviderOperation#apply 每一個操作。

AttachInfo(Context, ProviderInfo)

實例化後,會呼叫內容提供者自身。

BulkInsert(Uri, ContentValues[])

覆寫此設定以處理插入一組新資料列的請求,否則預設實作會遍歷這些值並 #insert 呼叫每個值。

Call(String, String, Bundle)

呼叫提供者定義的方法。

Call(String, String, String, Bundle)

呼叫提供者定義的方法。

Canonicalize(Uri)

實作此功能以支援指向你內容提供者的 URI 的標準化。

ClearCallingIdentity()

在目前執行緒中重設接收 IPC 的身份。

Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

內容提供者是 Android 應用程式的主要建構組件之一,負責為應用程式提供內容。

(繼承來源 JavaObject)
Delete(Uri, Bundle)

實作這個功能來處理刪除一列或多列的請求。

Delete(Uri, String, String[])

實作這個功能來處理刪除一列或多列的請求。

Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

內容提供者是 Android 應用程式的主要建構組件之一,負責為應用程式提供內容。

(繼承來源 JavaObject)
Dump(FileDescriptor, PrintWriter, String[])

將提供者的狀態印入給定的串流中。

DumpAsync(FileDescriptor, PrintWriter, String[])

將提供者的狀態印入給定的串流中。 如果你執行「adb shell dumpsys activity provider <provider_component_name>」,這個會被喚用。

Equals(Object)

內容提供者是 Android 應用程式的主要建構組件之一,負責為應用程式提供內容。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
GetPathPermissions()

回傳讀取及/或寫入此內容提供者所需的路徑權限。

GetStreamTypes(Uri, String)

由用戶端呼叫以判斷該內容提供者支援給定 URI 的資料串流類型。

GetType(Uri)

實作此方法以處理指定 URI 上資料 MIME 類型的請求。

GetTypeAnonymous(Uri)

實作此功能以處理 MIME 類型的 URI 請求,無需透露任何內部資訊,且應受任何權限保護。

Insert(Uri, ContentValues, Bundle)

實作這個功能來處理插入新列的請求。

Insert(Uri, ContentValues)

實作這個功能來處理插入新列的請求。

JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
OnCallingPackageChanged()

每當 變更 #getCallingPackage() 值發生時就會呼叫,讓提供者有機會使其執行的任何安全相關快取失效。

OnConfigurationChanged(Configuration)

新增此方法必須在應用程式主執行緒中被呼叫,且不得執行冗長操作。

OnCreate()

在啟動時實作這個功能來初始化你的內容提供者。

OnLowMemory()

新增此方法必須在應用程式主執行緒中被呼叫,且不得執行冗長操作。

OnTrimMemory(TrimMemory)

當作業系統判斷程序是刪除其程序中不需要記憶體的好時機時,會被呼叫。

OpenAssetFile(Uri, String, CancellationSignal)

這類似 #openFile於 ,但可以由需要能夠回傳檔案子區段(通常是資產)的提供者實作。

OpenAssetFile(Uri, String)

這類似 #openFile於 ,但可以由需要能夠回傳檔案子區段(通常是資產)的提供者實作。

OpenFile(Uri, String, CancellationSignal)

會覆寫這個指令來處理開啟檔案 blob 的請求。

OpenFile(Uri, String)

會覆寫這個指令來處理開啟檔案 blob 的請求。

OpenFileHelper(Uri, String)

對於想要實作 #openFile 的子類別來說,透過在指定 URI 中查找名為「_data」的欄位,方便使用。

OpenPipeHelper(Uri, String, Bundle, Object, ContentProvider+IPipeDataWriter)

一個幫助函式,用於實作 #openTypedAssetFile資料管道和背景執行緒,讓你能將產生的資料串流回用戶端。

OpenTypedAssetFile(Uri, String, Bundle, CancellationSignal)

由用戶端呼叫以開啟包含特定 MIME 類型資料的唯讀串流。

OpenTypedAssetFile(Uri, String, Bundle)

由用戶端呼叫以開啟包含特定 MIME 類型資料的唯讀串流。

Query(Uri, String[], Bundle, CancellationSignal)

實作此功能以處理查詢請求,當參數被打包在 Bundle.

Query(Uri, String[], String, String[], String, CancellationSignal)

實作此功能以處理客戶端的查詢請求,並支援取消功能。

Query(Uri, String[], String, String[], String)

實作這個功能來處理客戶端的查詢請求。

Refresh(Uri, Bundle, CancellationSignal)

實作此功能以支援由 所識別 uri的內容刷新。

RequireContext()

擷取此提供者正在執行的非空(Non-Nullable)上下文,該上下文預定在 #onCreate後呼叫。

RestoreCallingIdentity(ContentProvider+CallingIdentity)

將當前執行緒中接收的 IPC 身份恢復回先前由 #clearCallingIdentity返回的身份。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetPathPermissions(PathPermission[])

更改內容提供者中讀取和/或寫入資料所需的路徑權限。

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

內容提供者是 Android 應用程式的主要建構組件之一,負責為應用程式提供內容。

(繼承來源 JavaObject)
SetReadPermission(String)

更改閱讀內容提供者資料所需的權限。 這通常是根據服務成立時的清單資訊自動設定的。

SetWritePermission(String)

更改在內容提供者中寫入資料所需的權限。 這通常是根據服務成立時的清單資訊自動設定的。

Shutdown()

實作這個功能來關閉 ContentProvider 實例。

ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToString()

回傳物件的字串表示。

(繼承來源 Object)
Uncanonicalize(Uri)

移除先前由 #canonicalize返回的典範 URI 中的典範化。

UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Update(Uri, ContentValues, Bundle)

實作這個功能來處理更新一列或多列的請求。

Update(Uri, ContentValues, String, String[])

實作這個功能來處理更新一列或多列的請求。

Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

內容提供者是 Android 應用程式的主要建構組件之一,負責為應用程式提供內容。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

內容提供者是 Android 應用程式的主要建構組件之一,負責為應用程式提供內容。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

內容提供者是 Android 應用程式的主要建構組件之一,負責為應用程式提供內容。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

內容提供者是 Android 應用程式的主要建構組件之一,負責為應用程式提供內容。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

內容提供者是 Android 應用程式的主要建構組件之一,負責為應用程式提供內容。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

內容提供者是 Android 應用程式的主要建構組件之一,負責為應用程式提供內容。

(繼承來源 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

內容提供者是 Android 應用程式的主要建構組件之一,負責為應用程式提供內容。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

內容提供者是 Android 應用程式的主要建構組件之一,負責為應用程式提供內容。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於