SQLite
 sql >> Database >  >> RDS >> SQLite

Modo/ordine consigliato per leggere i dati da un servizio web, analizzare quei dati e inserirli in un db SQLite

Ho deciso di venire da voi perché siete gli esperti

prima i am not expert e anche i am not knowledgeable puoi trovare persone più esperte di me ma questa è la mia opinione hope to give you some help .

prima di tutto dimentica di usare AsyncTask da scaricare perché deve essere utilizzato per brevi lavori in background non come il tuo penso che la quantità di file che desideri scaricare sia piuttosto grande. (credo di sì)

controlla downloadmanager di google per vedere come funziona potrebbe aiutarti.

http://developer.android.com/reference/android/app/DownloadManager.html

http://blog.vogella.com/2011/06/14/android-downloadmanager-example/

se vuoi usare il service usa unbound service perché non vuoi che il servizio venga distrutto da Android o dall'utente quando l'utente chiude le app, vero? penso che tu voglia ottenere i tuoi dati in qualsiasi modo.

per essere efficiente ti consiglio questi passaggi:

un. Leggi un servizio riposante per recuperare i dati dei clienti

b. quando ricevi i dati dei clienti, fai :

  • crea un altro servizio o thread per leggere un servizio riposante per recuperare i dati degli articoli

  • Analizza la risposta a Json Objects sul tuo vecchio servizio o thread

ora hai 2 servizi o thread che vengono eseguiti contemporaneamente, quindi segui i passaggi che ovviamente insert parse e così, su ogni servizio o thread.

perché non combino a e d? perché penso che all'utente non piaccia aspettare molto tempo dietro la barra di avanzamento del download.

per inserire i tuoi dati nel database usa transaction e ti consiglio di usare:

http://greendao-orm.com/

è più efficiente ORM rispetto ad altri per il database e ti liberi dall'implementazione del db.

Se l'attività che ha avviato il servizio viene esplicitamente annullata o viene nascosta da un'altra attività, il servizio deve disporre di un modo per far sapere all'utente che il processo è terminato. Come potrei implementarlo?

utilizzare la notifica:

http://developer.android.com/training/notify-user/build-notification.html

http://www.tutorialspoint.com/android/android_notifications.htm

http://www.vogella.com/tutorials/AndroidNotifications/article.html

Mentre tutta questa lunga elaborazione avviene in background, dovrò mostrare una sorta di indicatore (un ProgressDialog) Questo è il motivo per cui ho optato per l'utilizzo di un Bound Service`

come posso aggiornare l'interfaccia utente da un servizio illimitato?`

Usa un LocalBroadCastManager , o in generale BroadCastReciever

Interfaccia utente dell'attività di aggiornamento Android dal servizio

In J2ME ho fatto qualcosa di simile, e quando inserisco qualcosa come i 6 passaggi che ho menzionato sopra, tutti vengono eseguiti in sequenza, cioè uno dopo l'altro. È lo stesso su Android?

questo dipende dai tuoi passaggi, se segui la mia idea esegui concurrently e se esegui la tua idea, eseguirai sequentially .

Buona fortuna.