ContentProvider 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
內容提供者是 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
- 繼承
- 衍生
- 屬性
- 實作
備註
內容提供者是 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 |
回傳此 |
| 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>) |
覆寫此設定以處理執行一批操作的請求,否則預設實作會反覆處理這些操作並呼叫 |
| ApplyBatch(String, IList<ContentProviderOperation>) |
覆寫此設定以處理執行一批操作的請求,否則預設實作會反覆處理這些操作並呼叫 |
| AttachInfo(Context, ProviderInfo) |
實例化後,會呼叫內容提供者自身。 |
| BulkInsert(Uri, ContentValues[]) |
覆寫此設定以處理插入一組新資料列的請求,否則預設實作會遍歷這些值並 |
| 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() |
每當 變更 |
| OnConfigurationChanged(Configuration) |
新增此方法必須在應用程式主執行緒中被呼叫,且不得執行冗長操作。 |
| OnCreate() |
在啟動時實作這個功能來初始化你的內容提供者。 |
| OnLowMemory() |
新增此方法必須在應用程式主執行緒中被呼叫,且不得執行冗長操作。 |
| OnTrimMemory(TrimMemory) |
當作業系統判斷程序是刪除其程序中不需要記憶體的好時機時,會被呼叫。 |
| OpenAssetFile(Uri, String, CancellationSignal) |
這類似 |
| OpenAssetFile(Uri, String) |
這類似 |
| OpenFile(Uri, String, CancellationSignal) |
會覆寫這個指令來處理開啟檔案 blob 的請求。 |
| OpenFile(Uri, String) |
會覆寫這個指令來處理開啟檔案 blob 的請求。 |
| OpenFileHelper(Uri, String) |
對於想要實作 |
| OpenPipeHelper(Uri, String, Bundle, Object, ContentProvider+IPipeDataWriter) |
一個幫助函式,用於實作 |
| OpenTypedAssetFile(Uri, String, Bundle, CancellationSignal) |
由用戶端呼叫以開啟包含特定 MIME 類型資料的唯讀串流。 |
| OpenTypedAssetFile(Uri, String, Bundle) |
由用戶端呼叫以開啟包含特定 MIME 類型資料的唯讀串流。 |
| Query(Uri, String[], Bundle, CancellationSignal) |
實作此功能以處理查詢請求,當參數被打包在 |
| Query(Uri, String[], String, String[], String, CancellationSignal) |
實作此功能以處理客戶端的查詢請求,並支援取消功能。 |
| Query(Uri, String[], String, String[], String) |
實作這個功能來處理客戶端的查詢請求。 |
| Refresh(Uri, Bundle, CancellationSignal) |
實作此功能以支援由 所識別 |
| RequireContext() |
擷取此提供者正在執行的非空(Non-Nullable)上下文,該上下文預定在 |
| RestoreCallingIdentity(ContentProvider+CallingIdentity) |
將當前執行緒中接收的 IPC 身份恢復回先前由 |
| 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) |
移除先前由 |
| 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) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
內容提供者是 Android 應用程式的主要建構組件之一,負責為應用程式提供內容。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |