Puis-je obtenir des données de préférences partagées à l'intérieur d'un service?
Je voudrais développer une application android. Je suis sous android 2.2
Dans mon application je suis la capture des données GPS et de l'envoyer au service, avec l'1 heure de temps d'intervalle. Si l'utilisateur quitte l'application, il travaille aussi (c'est obligatoire).
Je suis à l'aide de 2 services (définis par l'Utilisateur), un pour la capture des données GPS et d'autres pour l'envoi vers le serveur.
Ici mon doute
-
En service, peut-on utiliser partagé préférences.
-
Si nous conservons toutes les données partagées préférences dans toute activité de l'application, nous serons en mesure d'utiliser ces données dans le service avec l'aide du partage des préférences?
- Meilleure réponse que l'on trouve ici stackoverflow.com/questions/6446221/...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez accéder à la partagé par défaut des préférences de l'instance, lequel est partagé sur tous vos
Activity
etService
classes, en appelantPreferenceManager.getDefaultSharedPreferences(Context context)
:Ce qui est excellent pour le stockage de simples primitives (comme les booléens) ou des objets sérialisables. Toutefois, si vous êtes à la capture d'un lot de données de localisation, vous pouvez envisager d'utiliser une base de données SQLite à la place.
getApplicationContext()
méthode à la place.getSharedPreferences(String, Context)
les préférences ne seront pas partagées?J'ai trouver la solution.
À l'intérieur d'un service, nous appelons la méthode suivante pour obtenir la partagé préférences
Dans le code ci-dessus myapp est un objet de la classe application qui est dérivée à partir de Application
Vous avez besoin d'un contexte pour obtenir l'accès et le partage des préférences. La meilleure façon est de créer
MyApplication
comme un descendant deApplication
classe instancier il lepreferences
et de les utiliser dans le reste de votre application en tant queMyApplication.preferences
:Par exemple, si vous avez besoin d'accéder à vos préférences ailleurs, vous pouvez appeler cette fonction pour lire les préférences:
Ou vous pouvez appeler cette fonction pour enregistrer quelque chose pour les préférences:
(n'oubliez pas d'appeler
commit()
après l'ajout ou la modification des préférences!)PreferenceManager#getDefaultSharedPreferences(Context context);
méthode statique? C'est exactement ce qu'il est.context
est pas disponible.Activity
et unService
, qui ont tous deux uneContext
disponibles.getDefaultSharedPreferences
devrait toujours revenir à la mêmeSharedPreference
instance.Oui Shivkumar, vous pouvez utiliser votre part préférences en tout genre de services que normal que vous utilisez dans votre Activité.
même comme
Il y a deux façons de créer une instance de
SharedPreference
:Cas 1:
Cas 2:
Avis si vous créez une préférence avec le même nom (cas 1) ou même contexte (cas 2), même à des endroits différents, c'est toujours le même, et de partager des données, évidemment.