SharedPreferences und Emulator

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von bulk, 20.06.2010.

  1. bulk, 20.06.2010 #1
    bulk

    bulk Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    20.06.2010
    Hallo..

    ich habe ein Problem mit der Verwendung der SharedPreferences. Immer wenn ich Daten damit speicher und den Emulator neu starte (ohne die apk neu zu installieren) sind die zuvor gespeicherten SharedPreferences nicht mehr vorhanden. Mein Code sieht folgendermaßen aus:

    So schreibe ich Werte in die SharedPreferences:
    Code:
    SharedPreferences settings = getSharedPreferences(SETTINGS_NAME, 0);   
    settings.edit().putInt(SCHEDULER_START_TIME_HOUR, hourOfDay);
    settings.edit().putInt(SCHEDULER_START_TIME_MINUTE, minute);
    settings.edit().commit();
    
    Und beim onCreate() der Activity lese ich die Werte aus:
    Code:
    TextView startTimeText = (TextView)findViewById(R.id.startTimeText);
    SharedPreferences settings = getSharedPreferences(SETTINGS_NAME, 0);
    int hour = settings.getInt(SCHEDULER_START_TIME_HOUR, -1);
    int minute = settings.getInt(SCHEDULER_START_TIME_MINUTE, -1);
    startTimeText.setText(String.valueOf(hour) + ":" + String.valueOf(minute));
    
    Nach dem Neustart des Emulators ist meine Anzeige in der TextView immer "-1:-1"

    Weiß jemand woran das liegen könnte?

    Vielen Dank schonmal,
    bulk
     
    Zuletzt bearbeitet: 20.06.2010
  2. Fr4gg0r, 20.06.2010 #2
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    Und die beiden Konstanten sind auch wirklich gleich?
     
  3. bulk, 20.06.2010 #3
    bulk

    bulk Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    20.06.2010
    Ups das war noch ein Überbleibsel vom rumprobieren. Habs jetzt nochmal im Code geändert und im ersten Post auch.

    Das Problem ist aber das gleiche.
     
  4. bulk, 20.06.2010 #4
    bulk

    bulk Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    20.06.2010
    Okay ich hab es hinbekommen. Der Fehler lag im Setzen der preferences. Hierbei muss ich wohl einen SharedPreferences.Editor instanziieren und kann nicht über settings.edit() die Editor-Operationen machen.

    Code:
    SharedPreferences settings = getPreferences(MODE_PRIVATE);
    SharedPreferences.Editor editor = settings.edit();               
    
    editor.putInt(Constants.Settings.SCHEDULER_START_TIME_HOUR, hourOfDay);
    editor.putInt(Constants.Settings.SCHEDULER_START_TIME_MINUTE, minute);
                    
    editor.commit();
    
    Na ja nun geht es jedenfalls :)
     
  5. missG, 02.11.2010 #5
    missG

    missG Android-Hilfe.de Mitglied

    Beiträge:
    45
    Erhaltene Danke:
    0
    Registriert seit:
    19.10.2010
    habe ein anderes problem bezüglich des SharedPreferences. Ich habe dir gleiche methode wie "bulk" angewendet. möchte allerdings, dass auch andere activities die shared preferences laden.

    ich habe eine erst activity, die weitere activities startet, und dann switsche ich zwischen den acitivties mit dem FLAG:

    myIntent.setFlags(Intent.
    FLAG_ACTIVITY_REORDER_TO_FRONT);

    Habe deshlab die Shared Preferences im onResume() aufgerufen...

    Ein Beispiel zum Problem:

    Activitiy A ruft Activity B. B speicher infos und holt A auf obersten Stack. Allerding sind die geladen änderungen nicht wirksam. Erst nachdem A erneut B aufruft und B wieder A. Dann erst ist die änderung wirksam.

    why? :)
     

Diese Seite empfehlen