Domanda

Come per la mia comprensione, Content Provider è un mezzo per accedere ai contenuti del database.

E per accedere al database, è necessaria la parte dell'Autorità. Questa parte dell'autorità è fornito da CONTENT_URI. Così Content_URI è un mezzo per dare autorità alla banca dati. Per quanto CONTENT_URI è concerened, è generalmente di forma

content://com.example.transportationprovider/trains/122
______ |____________________________________|_____ |___ 
  A                      B                     C     D
Where A = Content,
      B = Authority Part
      c = Path determining what data to request
      D = specific data

scenario di cui sopra è uno scenario ideale in passiamo / treni come l'unico nome del database. Ma cosa succede se, ho il seguente content_uri:

content://com.example.transportationprovider/land/bus/133

In questo caso, è /land/bus i segmenti del percorso.

Ma allora internamente come questi dati vengono memorizzati nel database? O come contenuti Provider interpretare questi dati?

Si prega di aiutare me.

È stato utile?

Soluzione

La semplice risposta è che è memorizzato nel database come più vi piace. Tutto in nel percorso, e la mappatura del percorso al di sotto del database, è definita dallo scrittore del ContentProvider.

Più o meno, il modello che si desidera utilizzare è che avete un percorso per ogni tabella nel database.

Ci sono alcuni casi in cui si potrebbe desiderare alcuni percorsi aggiuntivi. Tipicamente, questo significa che espongono alcune alternativo "vista" del database ... La Contatti API fornisce una grande esempio di questo.

Perché si vuole far rispettare questo tipo di hirearchy "terra / bus"? Perché non solo "bus" e "treno". con una tabella di SQL ciascuno? tabelle SQL non sono classi Java. Non hanno relazioni di ereditarietà e cose del hirearchy non è necessario.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top