SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Maneira/ordem recomendada para ler dados de um webservice, analisar esses dados e inseri-los em um banco de dados SQLite


Eu decidi vir até você porque você é o especialista

primeiro i am not expert e também i am not knowledgeable você pode encontrar mais especialistas do que eu, mas esta é minha opinião hope to give you some help .

antes de tudo, esqueça de usar AsyncTask para baixar porque deve ser usado para trabalhos em segundo plano curtos, não como o seu, acho que a quantidade de arquivo que você deseja baixar é muito grande. (acho que sim)

verifique downloadmanager do google para ver como funciona pode te ajudar.

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

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

se você quiser usar service use unbound service porque você não quer que o serviço seja destruído pelo android ou usuário quando o usuário fechar os aplicativos não é? eu acho que você quer obter seus dados de qualquer maneira.

para ser eficiente, recomendo estas etapas:

uma. Leia um serviço tranquilo para recuperar os dados dos clientes

b. quando você obtém os dados do cliente, faça:

  • crie outro serviço ou thread para ler um serviço tranquilo para recuperar os dados dos artigos

  • Analise a resposta aos objetos Json em seu serviço ou encadeamento antigo

agora você tem 2 serviços ou threads que são executados simultaneamente, então siga as etapas óbvias insert parse e assim, em cada serviço ou thread.

por que não combino a e d? porque eu acho que o usuário não gosta de esperar muito tempo atrás da barra de progresso do download.

para inserir seus dados no banco de dados use transaction e eu recomendo que você use:

http://greendao-orm.com/

é mais eficiente ORM do que outros para banco de dados e você fica livre da implementação de banco de dados.

Se a atividade que iniciou o serviço for explicitamente cancelada ou ocultada por outra atividade, o serviço deve ter uma maneira de informar ao usuário que o processo foi concluído. Como eu poderia implementar isso?

usar notificação:

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

Enquanto todo esse longo processamento está ocorrendo em segundo plano, terei que mostrar algum tipo de indicador (um ProgressDialog) Esta é a razão pela qual optei por usar um Bound Service`

como posso atualizar a interface do usuário de um serviço não vinculado?`

Use um LocalBroadCastManager , ou em geral BroadCastReciever

UI de atividade de atualização do Android do serviço

No J2ME fiz algo parecido, e quando coloco algo como os 6 passos que mencionei acima todos eles são executados sequencialmente, ou seja, um após o outro. É o mesmo no Android?

isso depende de suas etapas, se você seguir minha ideia, execute concurrently e se você executar sua ideia, executará sequentially .

Boa sorte.