Pourquoi utiliser la base de données sqlite dans Android?

Pourquoi utilisons-nous la base de données sqlite dans android.Je développe une application android où les données doivent être récupérées à partir du serveur et faire un calcul de données et l'afficher sur l'interface utilisateur.

Est-il bon pour moi de récupérer les données dans la base de données sqlite et de mettre à jour l'interface utilisateur à intervalles réguliers à partir du sqlite en 20 minutes à evry ou sera-t-il bon d'envoyer la requête HTTP get au serveur et de mettre à jour les données de la réponse sur L'interface utilisateur.

Je voulais savoir lequel sera mieux et pourquoi?Pourquoi impliquer sqlite DB? Les données correspondent à des données de table 40X40 sur lesquelles un traitement mathématique lourd doit être effectué puis affiché sur L'interface utilisateur (similaire à L'application boursière) et les données doivent être effacées toutes les 12 heures. plz conseils Rgds, Raul

26
demandé sur Raulp 2012-04-26 12:35:10

5 réponses

, Il est bon d'utiliser la base de données dans votre cas.

Avantages:

  • Si votre application est fermée, les données en mémoire seront perdues, mais vous pourrez ensuite restaurer l'état de la base de données si vous en avez un
  • surtout dans le cas de calculs complexes, il est bon de stocker le résultat une fois dans la base de données et de ne pas le recalculer plusieurs fois à la demande
  • La base de données détachera votre interface utilisateur de la connexion internet et vous pourrez ainsi afficher les résultats même s'il n'y a pas de connexion internet
  • en utilisant la base de données, vous pourrez récupérer les données mises à jour à partir d'un service d'arrière-plan, sans affecter votre interface utilisateur
  • L'organisation de vos données dans la base de données facilite généralement la gestion de toutes les données de l'application.

Inconvénients:

  • L'ajout d'une base de données nécessitera un peu d'effort supplémentaire de votre part

Comme vous pouvez le voir, ma liste prouve que vous devriez utiliser la base de données dans votre cas. Peut-être que je suis partial, mais au moins je vous donne des choses à considérer.

25
répondu Boris Strandjev 2012-04-26 08:43:59

C'est vraiment une décision de conception, SQLite offre un moyen très robuste d'organiser et de persister vos données, vous n'êtes que d'autres options sont d'écrire dans un fichier, ou d'enregistrer dans SharedPrefs, les deux méthodes deviennent beaucoup plus difficiles à gérer une fois que la taille de vos données commence à croître, car vous devez Les données de table 40 x 40 sont suffisamment grandes pour justifier L'utilisation de SQLite, même si vous supprimez et recréez la table toutes les 12 heures.

Vous voudrez peut-être envisagez d'utiliser une bibliothèque ORM pour simplifier la récupération et l'enregistrement des données de la base de données, ORMLite est bon et compatible avec Android

Http://ormlite.com/

4
répondu Sam Clewlow 2012-04-26 08:42:55

Si votre application repose fortement sur une connexion internet, vous n'avez pas besoin de mettre en mémoire tampon les informations dans la base de données. Cependant, si vous souhaitez utiliser l'application où vous avez un mauvais signal ou aucun signal, vous pouvez utiliser des valeurs mises en cache de la base de données sqlite. Avec une connexion Internet lente, votre application peut ne pas répondre, donc la mise en cache peut être une bonne idée - mais elle ne se trouve pas nécessairement dans la base de données sqlite. Vous devez utiliser la base de données sqlite pour les données requises par le périphérique fréquemment et cela n'est pas pertinent pour votre composant serveur. Si les données sont mises à jour fréquemment mais uniquement pendant l'exécution de l'application, vous pouvez mettre en cache dans la mémoire des périphériques. Je suppose que votre application ne fonctionne pas tout le temps dans les heures 12, mais est appelée régulièrement pour vérifier quelque chose.

3
répondu konqi 2012-04-26 08:43:12

12hrs est une longue période, donc plutôt que de laisser vos données errer dans la RAM, je vous suggère d'utiliser la base de données. Parce que vous ne savez jamais quand vous pourriez avoir besoin de la relire.

Sinon, si votre but est uniquement de télécharger des données, de les traiter et de les afficher en activité, vous n'avez pas besoin d'impliquer la base de données car si votre application est fermée (en raison de l'utilisateur ou de la mémoire faible), votre application téléchargera de nouvelles données du serveur... suis-je le droit?

0
répondu waqaslam 2012-04-26 08:41:53
> update the UI on regular interval from the sqlite in evry 20 minutes 

Ne vous attendez pas à ce que votre application soit ouverte pendant une si longue durée.

Pour suggérer précisément à votre cas

 Avoid DB 

 Fetch Data at app start or at appropriate time when app is opened 
 and save it in plain java objects.

 Define Methods within it that perform operation in it.

 Make map or list to save those POJO

 Define Seprate Controller Classes within your project to update map of pojo at any     
 specific change to make fresh data available to UI.
0
répondu Javanator 2012-04-26 08:53:55