ContentProvider Classe

Definizione

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

[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
Ereditarietà
ContentProvider
Derivato
Attributi
Implementazioni

Commenti

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni. Incapsulano i dati e li forniscono alle applicazioni tramite la singola ContentResolver interfaccia. Un provider di contenuti è necessario solo se è necessario condividere dati tra più applicazioni. Ad esempio, i dati dei contatti vengono usati da più applicazioni e devono essere archiviati in un provider di contenuti. Se non è necessario condividere dati tra più applicazioni, è possibile usare un database direttamente tramite android.database.sqlite.SQLiteDatabase.

Quando una richiesta viene effettuata tramite un ContentResolver sistema controlla l'autorità dell'URI specificato e passa la richiesta al provider di contenuti registrato con l'autorità. Il provider di contenuti può interpretare il resto dell'URI, ma vuole. La UriMatcher classe è utile per l'analisi degli URI.

I metodi principali che devono essere implementati sono: <ul><li>#onCreate che viene chiamato per inizializzare il provider</li><li>#query che restituisce i dati al chiamante</li che inserisce nuovi dati nel provider< di contenuti/li>><#update che aggiorna i dati esistenti nel provider< di contenuti/li>><#delete che elimina i dati dal provider< di contenuti/li li>#getType><>#insert>< che restituisce il tipo MIME di dati nel provider< di contenuti/li></ul>

I metodi di accesso ai dati (ad esempio #insert e #update) possono essere chiamati da più thread contemporaneamente e devono essere thread-safe. Altri metodi ( ad esempio #onCreate) vengono chiamati solo dal thread principale dell'applicazione e devono evitare di eseguire operazioni lunghe. Vedere le descrizioni dei metodi per il comportamento previsto del thread.

Le richieste a ContentResolver vengono inoltrate automaticamente all'istanza di ContentProvider appropriata, pertanto le sottoclassi non devono preoccuparsi dei dettagli delle chiamate tra processi.

<div class="special reference"><h3>Developer Guides</h3>

Per altre informazioni sull'uso dei provider di contenuto, vedere la Guida per sviluppatori dei provider di contenuti.

</div>

per android.content.ContentProvider.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Costruttori

Nome Descrizione
ContentProvider()

Costruire un'istanza di ContentProvider.

ContentProvider(IntPtr, JniHandleOwnership)

Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime.

Proprietà

Nome Descrizione
CallingAttributionSource

Ottiene l'origine di attribuzione dell'app chiamante.

CallingAttributionTag

Restituisce il tag di attribuzione del chiamante che ha avviato la richiesta elaborata nel thread corrente.

CallingPackage

Restituisce il nome del pacchetto del chiamante che ha avviato la richiesta elaborata nel thread corrente.

CallingPackageUnchecked

Restituisce il nome del pacchetto del chiamante che ha avviato la richiesta elaborata nel thread corrente.

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Context

Recupera il contesto in cui è in esecuzione questo provider.

Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
IsTemporary

Restituisce true se questa istanza è un provider di contenuto temporaneo.

JniIdentityHashCode

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

(Ereditato da Object)
JniPeerMembers

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

PeerReference

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

(Ereditato da Object)
ReadPermission
Obsoleti.

Restituisce il nome dell'autorizzazione necessaria per l'accesso in sola lettura a questo provider di contenuti. -oppure- Modificare l'autorizzazione necessaria per leggere i dati dal provider di contenuti.

ThresholdClass

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

ThresholdType

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

WritePermission
Obsoleti.

Restituisce il nome dell'autorizzazione necessaria per l'accesso in lettura/scrittura a questo provider di contenuti. -oppure- Modificare l'autorizzazione necessaria per leggere e scrivere dati nel provider di contenuti.

Metodi

Nome Descrizione
ApplyBatch(IList<ContentProviderOperation>)

Eseguire l'override di questa opzione per gestire le richieste per eseguire un batch di operazioni oppure l'implementazione predefinita eseguirà l'iterazione delle operazioni e chiamerà ContentProviderOperation#apply ognuna di esse.

ApplyBatch(String, IList<ContentProviderOperation>)

Eseguire l'override di questa opzione per gestire le richieste per eseguire un batch di operazioni oppure l'implementazione predefinita eseguirà l'iterazione delle operazioni e chiamerà ContentProviderOperation#apply ognuna di esse.

AttachInfo(Context, ProviderInfo)

Dopo la creazione di un'istanza, viene chiamato per indicare al provider di contenuti se stesso.

BulkInsert(Uri, ContentValues[])

Eseguire l'override di questa opzione per gestire le richieste di inserimento di un set di nuove righe oppure l'implementazione predefinita eseguirà l'iterazione sui valori e chiamerà #insert ognuno di essi.

Call(String, String, Bundle)

Chiamare un metodo definito dal provider.

Call(String, String, String, Bundle)

Chiamare un metodo definito dal provider.

Canonicalize(Uri)

Implementare questa opzione per supportare la canonizzazione degli URI che fanno riferimento al provider di contenuti.

ClearCallingIdentity()

Reimpostare l'identità dell'IPC in ingresso nel thread corrente.

Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Delete(Uri, Bundle)

Implementare questa opzione per gestire le richieste di eliminazione di una o più righe.

Delete(Uri, String, String[])

Implementare questa opzione per gestire le richieste di eliminazione di una o più righe.

Dispose()

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

(Ereditato da Object)
Dispose(Boolean)

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

(Ereditato da Object)
Dump(FileDescriptor, PrintWriter, String[])

Stampare lo stato del provider nel flusso specificato.

DumpAsync(FileDescriptor, PrintWriter, String[])

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
GetHashCode()

Restituisce un valore di codice hash per l'oggetto .

(Ereditato da Object)
GetPathPermissions()

Restituisce le autorizzazioni basate sul percorso necessarie per l'accesso in lettura e/o scrittura a questo provider di contenuti.

GetStreamTypes(Uri, String)

Chiamato da un client per determinare i tipi di flussi di dati supportati da questo provider di contenuto per l'URI specificato.

GetType(Uri)

Implementare questa opzione per gestire le richieste per il tipo MIME dei dati nell'URI specificato.

GetTypeAnonymous(Uri)

Implementare questa opzione per gestire le richieste per il tipo MIME di URI, che non devono rivelare informazioni interne che devono essere protette da alcuna autorizzazione.

Insert(Uri, ContentValues, Bundle)

Implementare questa opzione per gestire le richieste di inserimento di una nuova riga.

Insert(Uri, ContentValues)

Implementare questa opzione per gestire le richieste di inserimento di una nuova riga.

JavaFinalize()

Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto .

(Ereditato da Object)
Notify()

Riattiva un singolo thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
OnCallingPackageChanged()

Chiamato ogni volta che il valore delle #getCallingPackage() modifiche, offrendo al provider l'opportunità di invalidare qualsiasi memorizzazione nella cache correlata alla sicurezza che potrebbe essere eseguita.

OnConfigurationChanged(Configuration)

Per essere aggiunto Questo metodo viene sempre chiamato nel thread principale dell'applicazione e non deve eseguire operazioni lunghe.

OnCreate()

Implementare questa opzione per inizializzare il provider di contenuti all'avvio.

OnLowMemory()

Per essere aggiunto Questo metodo viene sempre chiamato nel thread principale dell'applicazione e non deve eseguire operazioni lunghe.

OnTrimMemory(TrimMemory)

Chiamato quando il sistema operativo ha determinato che è un buon momento per un processo per ridurre la memoria non richiesta dal relativo processo.

OpenAssetFile(Uri, String, CancellationSignal)

Questo è simile #openFilea , ma può essere implementato dai provider che devono essere in grado di restituire sezioni secondarie di file, spesso asset all'interno del relativo .

OpenAssetFile(Uri, String)

Questo è simile #openFilea , ma può essere implementato dai provider che devono essere in grado di restituire sezioni secondarie di file, spesso asset all'interno del relativo .

OpenFile(Uri, String, CancellationSignal)

Eseguire l'override di questa opzione per gestire le richieste per aprire un BLOB di file.

OpenFile(Uri, String)

Eseguire l'override di questa opzione per gestire le richieste per aprire un BLOB di file.

OpenFileHelper(Uri, String)

Praticità per le sottoclassi che desiderano implementare #openFile cercando una colonna denominata "_data" nell'URI specificato.

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

Funzione helper per l'implementazione #openTypedAssetFiledi , per la creazione di una pipe di dati e di un thread in background che consente di trasmettere i dati generati al client.

OpenTypedAssetFile(Uri, String, Bundle, CancellationSignal)

Chiamato da un client per aprire un flusso di sola lettura contenente dati di un particolare tipo MIME.

OpenTypedAssetFile(Uri, String, Bundle)

Chiamato da un client per aprire un flusso di sola lettura contenente dati di un particolare tipo MIME.

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

Implementare questa opzione per gestire le richieste di query in cui gli argomenti vengono compressi in un oggetto Bundle.

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

Implementare questa opzione per gestire le richieste di query dai client con supporto per l'annullamento.

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

Implementare questa opzione per gestire le richieste di query dai client.

Refresh(Uri, Bundle, CancellationSignal)

Implementare questa opzione per supportare l'aggiornamento del contenuto identificato da uri.

RequireContext()

Recupera un contesto non nullable in cui è in esecuzione questo provider, che deve essere chiamato dopo #onCreate.

RestoreCallingIdentity(ContentProvider+CallingIdentity)

Ripristinare l'identità dell'IPC in ingresso nel thread corrente a un'identità precedentemente restituita da #clearCallingIdentity.

SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
SetPathPermissions(PathPermission[])

Modificare l'autorizzazione basata sul percorso necessaria per leggere e/o scrivere dati nel provider di contenuto.

SetReadPermission(String)

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

SetWritePermission(String)

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

Shutdown()

Implementare questa opzione per arrestare l'istanza di ContentProvider.

ToArray<T>()

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione di stringa dell'oggetto .

(Ereditato da Object)
Uncanonicalize(Uri)

Rimuovere la canonizzazione dagli URI canonici restituiti in precedenza da #canonicalize.

UnregisterFromRuntime()

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

(Ereditato da Object)
Update(Uri, ContentValues, Bundle)

Implementare questa opzione per gestire le richieste di aggiornamento di una o più righe.

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

Implementare questa opzione per gestire le richieste di aggiornamento di una o più righe.

Wait()

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>.

(Ereditato da Object)
Wait(Int64, Int32)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IJavaPeerable.Disposed()

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

(Ereditato da Object)
IJavaPeerable.Finalized()

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

(Ereditato da Object)

Metodi di estensione

Nome Descrizione
GetJniTypeName(IJavaPeerable)

Ottiene il nome JNI del tipo dell'istanza selfdi .

JavaAs<TResult>(IJavaPeerable)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

I provider di contenuti sono uno dei blocchi predefiniti principali delle applicazioni Android, fornendo contenuto alle applicazioni.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

Si applica a