2016-11-18 2 views
-6

Je construis une application/un jeu relativement simple qui consiste en des tâches et des sous-tâches. La progression de l'utilisateur devrait être sauvegardée. L'utilisateur a également une petite quantité de paramètres. Pour l'instant l'application ne se connecte pas à des services externes, mais à l'avenir, l'objectif est d'utiliser Facebook ou quelque chose de similaire pour l'enregistrement des utilisateurs et ajouter une fonctionnalité pour partager progressinon/accomplissement avec d'autres utilisateurs.Où stocker les données de l'application?

Je suis nouveau dans le développement d'applications et je ne sais pas quelle méthode de stockage de données choisir. Si je ne me trompe pas, il existe des ensembles de valeurs-clés, l'enregistrement dans une option de fichier et de base de données.

Pour faire avancer les choses rapidement et peut-être même libérer le v. 1.0 je voudrais aller avec la solution la plus simple. Donc, j'aimerais savoir s'il y a un inconvénient à choisir la valeur-clé ou à enregistrer dans une option de fichier et à quel point est-il difficile de passer à une économie basée sur la base de données? Ou devrais-je simplement utiliser la base de données dès le début?

Je vous salue d'avoir pris le temps d'y répondre!

-Timo

+1

principalement basé sur l'opinion ... avez-vous vérifié le sujet "Options de stockage" dans les guides android officiels? – Selvin

+0

'Préférences partagées' sont une bonne option pour vous. – AJay

+0

Merci AJay! Je vais essayer ça. –

Répondre

1

Je recommande pour vous les SharedPreferences. C'est une classe Android simple, qui stocke vos données dans des ensembles de valeurs-clés.

Voici le code:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 

Ce initialize vos SharedPreferences. Si vous voulez écrire/modifier une valeur, procédez comme suit:

SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putInt("KEY_TO_VALUE", 123); 
editor.commit(); 

Vous pouvez aussi mettre là-dedans d'autres types de valeurs, mais que vous avez besoin d'appeler putString ou putBoolean ou même d'autres types.

Pour lire la valeur faire:

int a = prefs.getInt("KEY_TO_VALUE", 0); 

Ce code ont besoin, comme toujours votre paramètre de votre clé et un second paramètre une valeur par défaut.

Une autre astuce pour vous, c'est que si vous voulez l'utiliser dans une application normale avec une interface utilisateur simple, il y a quelque chose qui s'appelle PreferenceScreen.

+0

Merci! Je vais essayer. –

1

La façon la plus simple utilise SharedPreferences. Pour les choses plus complexes, vous devez utiliser SQLite (intégré) ou certains ORM comme Realm ou GreenDao. Pour le partage de score en ligne, vous devez utiliser l'un des mentionnés ci-dessus et un serveur. Facebook vous permet de stocker seulement un nombre entier par utilisateur ce qui n'est parfois pas suffisant et aussi pour stocker cet entier, vous devez demander une permission supplémentaire à l'utilisateur (publish_actions). J'espère que cela aidera.

+0

Merci! Ce sont des tps utiles. –