SharedPreferences erhält in meiner vorhandenen App immer den Standardwert, aber wenn eine neue App erstellt wird, ist sie in Ordnung.

SharedPreferences funktioniert in einer vorhandenen App nicht richtig. Ich habe viele verschiedene Möglichkeiten ausprobiert, aber immer noch nicht funktioniert. Standardwerte immer abrufen, App neu starten.

Es funktioniert, wenn ich denselben Code in der erstellten neuen App verwende. Es funktioniert mit allen anderen vorhandenen Apps.

Weißt du, warum

    String default_user = "Default_User";
    SharedPreferences pref = this.getSharedPreferences("TEST_SHAREDPREF", MODE_PRIVATE);
    String user = pref.getString("user", default_user);
    Log.d("SHARED CHECK", user);
    if (user.equals(default_user)) {
        SharedPreferences.Editor edit = pref.edit();
        edit.putString("user", "new_user");
        boolean ok = edit.commit();
        user = pref.getString("user", default_user);
        Log.d("SHARED WRITE", user);
        Toast.makeText(this, user + " Save process: " + ok, Toast.LENGTH_LONG).show();
    } else {
        Log.d("SHARED READ", user);
        Toast.makeText(this, "READ SharedPrefs: " + user, Toast.LENGTH_LONG).show();
    }

BEARBEITEN log results

dieser Block gibt immer das zurück, wofür die App falsch ist und ich weiß nicht warum

    //first run
    SHARED CHECK Default_User
    SHARED WRITE new_user

    //each time after first
    SHARED CHECK Default_User
    SHARED WRITE new_user

Dieser Block gibt immer das zurück, wofür alle Apps sind

    //first run
    SHARED CHECK Default_User
    SHARED WRITE new_user

    //each time after first
    SHARED CHECK new_user
    SHARED READ new_user

Antworten auf die Frage(22)

Ihre Antwort auf die Frage