Autore Topic: [ContentProvider] Iniziare a capire BENE come funziona: mi date una mano?  (Letto 604 volte)

Offline Noisemaker

  • Utente junior
  • **
  • Post: 58
  • Respect: +1
    • Mostra profilo
Ciao a tutti :)
Sto sviluppando un'applicazione un po più seria e piano piano sto scoprendo nuove cose su android.
Il content provider non mi è nuovo, l'ho già utilizzato per un esame all'uni ma vorrei riuscire a capire bene il suo funzionamento e come va usato.
Innanzi tutto vi dico quello che ho capito, sperando di non dire castronerie immense, ma nel caso saranno tutte cose utili imparate ;)
Mi sembra di aver capito che tale componente fa da "intermezzo" tra l'applicazione e i dati, o meglio la struttura dati, permettendo un'astrazione della stessa. L'applicazione quindi si limiterà a fare le richieste di:
- inserimento
- cancellazione
- query generica
Il content provider le andrà a gestire sulla base della struttura dati che si è scelta (DB, testo, XML, ecc...). Esatto fin qui?

Ora vi chiedo un paio di cose: quando nell'activity faccio
Codice: [Seleziona]
getContentResolver()sto in pratica "chiedendo" di usare il provider della mia applicazione, giusto?
Fin'ora ho usato tale funzione per interrogare alcune tabelle interne di Android, ma da quello che capisco quello che lui mi ritorna è un ContentProvider di default. Definendo e implementando un mio CP lui "accede" a quello quando faccio getContentResolver??

Se io ora definisco io mio ContentProvider, dovrò occuparmi di gestire i vari tipi di richiesta basandomi sull'URI che mi viene passato?
Perchè in pratica adesso quando faccio insert gli passo l'URI della tabella dove va fatto l'inserimento e gestisce lui la cosa, però se vado ad implementare il mio ContentProvider che dovrà gestire anche un DB interno e non solo tabelle esterne già esistenti, devo poter discriminare dove voglio inserire i dati, cancellarli o fare la query, esatto?