Autore Topic: SharedPreferences all'inteno di un Service  (Letto 506 volte)

Offline x69asterix2

  • Utente junior
  • **
  • Post: 127
  • Respect: +1
    • Mostra profilo
SharedPreferences all'inteno di un Service
« il: 05 Maggio 2015, 15:55:10 CEST »
0
perchè non mi ritorna nulla all'interno di un service?

se lo eseguo dentro delle activity ottengo la preferenza , ma
all'interno di un servizio mi ritorna sempre null.

per scrivere
Codice: [Seleziona]
   SharedPreferences prefs = getSharedPreferences("last", Context.MODE_MULTI_PROCESS);
                                SharedPreferences.Editor editor = prefs.edit();
                                editor.putString("user", ((TextView) b).getText().toString());
                                editor.commit();
per leggere
Codice: [Seleziona]
        SharedPreferences pref3;
        pref3 = conUsr.getSharedPreferences("last", Context.MODE_MULTI_PROCESS);
        data_usr = pref3.getString("user", "No Value");

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 624
  • Respect: +136
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:SharedPreferences all'inteno di un Service
« Risposta #1 il: 06 Maggio 2015, 10:35:00 CEST »
0
a) Prova con Context.MODE_PRIVATE
b) Se non funziona, prova derivando l'activity:

Codice (Java): [Seleziona]
public class MyApplication extends Application {
    public static SharedPreferences preferences;

    @Override
    public void onCreate() {
        super.onCreate();

        preferences = getSharedPreferences( "last", MODE_PRIVATE);

e poi

Codice (Java): [Seleziona]
SharedPreferences prefs = MyApplication.preferences;
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline arlabs

  • Utente normale
  • ***
  • Post: 430
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:SharedPreferences all'inteno di un Service
« Risposta #2 il: 06 Maggio 2015, 15:04:43 CEST »
0
Cos'è "conUsr"?

In scrittura chiami il metodo getSharedPreferences del Service, in lettura quello dell'oggetto conUsr.


Offline x69asterix2

  • Utente junior
  • **
  • Post: 127
  • Respect: +1
    • Mostra profilo
Re:SharedPreferences all\'inteno di un Service
« Risposta #3 il: 07 Maggio 2015, 09:46:32 CEST »
0
Cos'è "conUsr"?

In scrittura chiami il metodo getSharedPreferences del Service, in lettura quello dell'oggetto conUsr.
è il context

Post unito: 07 Maggio 2015, 09:47:13 CEST
a) Prova con Context.MODE_PRIVATE
b) Se non funziona, prova derivando l'activity:

Codice (Java): [Seleziona]
public class MyApplication extends Application {
    public static SharedPreferences preferences;

    @Override
    public void onCreate() {
        super.onCreate();

        preferences = getSharedPreferences( "last", MODE_PRIVATE);

e poi

Codice (Java): [Seleziona]
SharedPreferences prefs = MyApplication.preferences;
ciao, avevo risolto proprio in questo modo!
grazie

Offline arlabs

  • Utente normale
  • ***
  • Post: 430
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:SharedPreferences all\'inteno di un Service
« Risposta #4 il: 07 Maggio 2015, 09:55:20 CEST »
0
è il context

Beh, risposta ovvia... getSharedPreferences è un metodo di Context. Ma quale context?
Service è un Context, Application è un Context, Activity è un Context.

Tu in scrittura chiami getSharedPreferences sul Service (presumibilmente, perché vedo solo un pezzo di codice), in letture lo chiami su "conUsr", presumibilmente un Context diverso.
Potrebbe essere quello il problema.

Ciao.
« Ultima modifica: 07 Maggio 2015, 09:57:17 CEST da arlabs »