2012-01-30 12 views
5

Voglio creare un fornitore di contenuti che porterà risultati da un server web. È come se invii alcuni parametri di post al mio server web e mi restituisce una risposta JSON che devo analizzare e mostrarla nella casella di ricerca rapida di Android.Content Provider per recuperare i risultati dal server Web?

Ho già esaminato SearchableDictionary ma non sembrano connettersi a un server per ottenere risultati. Ho cercato sul web ma nessun esempio corretto da nessuna parte.

Come posso farlo?

+0

Che cosa è esattamente il tuo problema? Creazione di provider di contenuti o acquisizione (e memorizzazione nella cache) dei dati dal server Web in formato JSON? –

+0

scusa per una domanda così irresponsabile. Voglio sapere come posso chiamare il server web da un fornitore di contenuti? È necessario creare un AsyncTask? – Enigma

+1

Forse questa domanda http://stackoverflow.com/questions/4264589/search-suggestions-from-network-resource-into-quick-search-box può aiutarti. – Eleni

risposta

1

I ContentProvider non sono intesi come fonti di dati asincroni. In tale situazione, è necessario creare un SyncAdapter che mantenga un database locale sincronizzato con un archivio dati remoto ed esporti i dati da questo database locale. ContentResolver s si integrano perfettamente con SyncAdapter s per fornire questo.

Leggi punto 4 'Prima di iniziare a costruire' il http://developer.android.com/guide/topics/providers/content-provider-creating.html#DataStorage

+0

il mio server web restituisce dati diversi a seconda della query che invio ad esso. quello che voglio dire è che non esiste un repository fisso. E il web server richiede anche l'autenticazione. uno deve essere registrato per ottenere risultati. è possibile in questo caso ottenere risultati nel widget della casella di ricerca rapida di Android? – Enigma

+0

Dovrai fare l'auth in anticipo, tanto più se stai usando la casella di ricerca rapida. Non si può disturbare l'utente in quel momento perdere tempo con l'autenticazione. Per quanto riguarda "diversi dati basati sulla parte della query", non è possibile estrapolarlo a un certo livello in modo da esporre una singola interfaccia datastore? –

+0

è come cercare alcuni dati su un cloud. invio una query e il server mi restituirà i record che corrispondono alla query. come posso usare syncadapter in questo caso? – Enigma

Problemi correlati