共用方式為


ContentProvider 類別

定義

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

[Android.Runtime.Register("android/content/ContentProvider", DoNotGenerateAcw=true)]
public abstract class ContentProvider : Java.Lang.Object, Android.Content.IComponentCallbacks2, IDisposable, Java.Interop.IJavaPeerable
[<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> 來初始化 provider</li,>><#query它會將數據傳回給呼叫者</>#insert<>li li,它會將新數據插入內容提供者/li><>#update li,以更新內容提供者</li li 中現有的數據,以從內容提供者</li#delete>>< li 刪除內容提供者<中的數據/li li#getType>><會傳回內容提供者</li></ul 中MIME數據類型>

<p class=“caution”>資料存取方法(例如 #insert#update)可能一次從許多線程呼叫,而且必須是安全線程。 其他方法(例如 #onCreate) 只會從應用程式主線程呼叫,而且必須避免執行冗長的作業。 請參閱其預期線程行為的方法描述。</p>

ContentResolver的要求會自動轉送至適當的 ContentProvider 實例,因此子類別不需要擔心跨進程呼叫的詳細數據。

<div class=“special reference”><h3>Developer Guides</h3>

如需使用內容提供者的詳細資訊,請參閱 內容提供者 開發人員指南。

</div>

android.content.ContentProviderJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

建構函式

ContentProvider()

建構 ContentProvider 實例。

ContentProvider(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。

屬性

CallingAttributionSource

取得呼叫應用程式的屬性來源。

CallingAttributionTag

傳回呼叫端的屬性標記,該呼叫端起始目前線程上正在處理的要求。

CallingPackage

傳回呼叫端的封裝名稱,該呼叫端起始目前線程上正在處理的要求。

CallingPackageUnchecked

傳回呼叫端的封裝名稱,該呼叫端起始目前線程上正在處理的要求。

Class

傳回這個 Object的運行時間類別。

(繼承來源 Object)
Context

擷取此提供者正在執行的內容。

Handle

基礎Android實例的句柄。

(繼承來源 Object)
IsTemporary

如果這個實例是暫存內容提供者,則傳回 true。

JniIdentityHashCode

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

(繼承來源 Object)
JniPeerMembers

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

PeerReference

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

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

傳回此內容提供者唯讀存取所需的許可權名稱。 -或- 變更從內容提供者讀取數據所需的許可權。

ThresholdClass

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

ThresholdType

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

WritePermission
已淘汰.

傳回此內容提供者讀取/寫入存取所需的許可權名稱。 -或- 變更讀取和寫入內容提供者中數據所需的許可權。

方法

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)
Delete(Uri, Bundle)

實作此作業來處理刪除一或多個數據列的要求。

Delete(Uri, String, String[])

實作此作業來處理刪除一或多個數據列的要求。

Dispose()

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

(繼承來源 Object)
Dispose(Boolean)

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

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

將提供者的狀態列印至指定的數據流。

DumpAsync(FileDescriptor, PrintWriter, String[])

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

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)

在指定的 URI 上查閱名為 「_data」 的資料行,以方便 #openFile 實作的子類別。

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()

擷取此提供者正在執行中的不可為 Null 內容,這是在 之後 #onCreate呼叫。

RestoreCallingIdentity(ContentProvider+CallingIdentity)

將目前線程上連入 IPC 的身分識別還原回 先前由 傳 #clearCallingIdentity回的身分識別。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

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

變更內容提供者中讀取和/或寫入資料所需的路徑型許可權。

SetReadPermission(String)

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

SetWritePermission(String)

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

Shutdown()

實作此專案以關閉 ContentProvider 實例。

ToArray<T>()

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

(繼承來源 Object)
ToString()

傳回物件的字串表示。

(繼承來源 Object)
Uncanonicalize(Uri)

從先前由 #canonicalize傳回的標準 URI 中移除標準化。

UnregisterFromRuntime()

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

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

實作此作業以處理更新一或多個數據列的要求。

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

實作此作業以處理更新一或多個數據列的要求。

Wait()

讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<>

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

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)
Wait(Int64)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)

明確介面實作

IJavaPeerable.Disposed()

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

(繼承來源 Object)
IJavaPeerable.DisposeUnlessReferenced()

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

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

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

(繼承來源 Object)
IJavaPeerable.JniManagedPeerState

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

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

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

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

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

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

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

(繼承來源 Object)

擴充方法

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

GetJniTypeName(IJavaPeerable)

內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。

適用於