ContentProvider 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
內容提供者是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
- 繼承
- 衍生
- 屬性
- 實作
備註
內容提供者是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.ContentProvider
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
ContentProvider() |
建構 ContentProvider 實例。 |
ContentProvider(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
屬性
CallingAttributionSource |
取得呼叫應用程式的屬性來源。 |
CallingAttributionTag |
傳回呼叫端的屬性標記,該呼叫端起始目前線程上正在處理的要求。 |
CallingPackage |
傳回呼叫端的封裝名稱,該呼叫端起始目前線程上正在處理的要求。 |
CallingPackageUnchecked |
傳回呼叫端的封裝名稱,該呼叫端起始目前線程上正在處理的要求。 |
Class |
傳回這個 |
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>) |
覆寫此動作以處理執行批次作業的要求,或默認實作會逐一查看作業,並呼叫 |
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) |
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() |
每當變更的值 |
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) |
在指定的 URI 上查閱名為 「_data」 的資料行,以方便 |
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() |
擷取此提供者正在執行中的不可為 Null 內容,這是在 之後 |
RestoreCallingIdentity(ContentProvider+CallingIdentity) |
將目前線程上連入 IPC 的身分識別還原回 先前由 傳 |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
SetPathPermissions(PathPermission[]) |
變更內容提供者中讀取和/或寫入資料所需的路徑型許可權。 |
SetReadPermission(String) |
內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。 |
SetWritePermission(String) |
內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。 |
Shutdown() |
實作此專案以關閉 ContentProvider 實例。 |
ToArray<T>() |
內容提供者是Android應用程式的主要建置組塊之一,提供內容給應用程式。 (繼承來源 Object) |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
Uncanonicalize(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應用程式的主要建置組塊之一,提供內容給應用程式。 |