2017-08-25 3 views
0

J'enregistre des données comme l'identifiant de l'utilisateur (pour faire des demandes d'accès) en utilisant des préférences partagées, ensuite j'ai une activité avec 3 fragments qui utiliseront cet identifiant. Devrais-je obtenir les données (id) obtenant la préférence partagée dans chaque fragment? ou devrais-je getSharedPreferences dans l'activité principale et passer l'id en utilisant bundle ??Préférences partagées Android dans chaque fragment ou ensemble de l'activité principale?

Ma question: quelle option est la plus rapide et consomme moins de ressources? Et pourquoi? Merci à l'avance ..

+0

est évidemment plus rapide à lire de la mémoire (RAM) que lire à partir du disque. SharedPreferences fonctionne avec xml –

+0

@an_droid_dev désolé mon anglais n'est pas bon, quand vous référez à la mémoire RAM vous vous référez à utiliser bundle? Quelle option recommandez-vous? Pouvez-vous être plus clair, s'il vous plaît? – matQ

+0

oui, je veux dire Bundle. L'ensemble n'est pas stocké sur le disque mais en mémoire (RAM). –

Répondre

0

Créer une classe singleton pour SharedPreferences

0

Le problème avec le passage en supplément est qu'il peut ne pas être récupéré sur une recréation de fragment. Vous devrez peut-être prendre des précautions en sauvegardant la valeur avant que le fragment ne se détruise pour être ré-instancié ou pour tout autre événement imprévisible.

Dans cet esprit, c'est une bonne idée d'obtenir l'ID du SharedPreferences. L'opération de lecture n'est pas aussi coûteuse que l'opération d'écriture (c'est pourquoi il existe la méthode asynchrone apply()).

+0

alors, vous me recommandez d'appeler getSharedPreferences dans chaque fragment? obtenir l'identifiant? – matQ

+0

@matQ Oui. Voir mon premier paragraphe pour le raisonnement. –