webentwicklung-frage-antwort-db.com.de

SharedPreferences werden bei der Deinstallation der Anwendung durch den Benutzer nicht entfernt

Hat jemand dieses Problem auf einem Nexus 6P-Gerät festgestellt? Ich erhalte dieses Problem nur auf einem Nexus 6P (mit Google Fi).

Wenn ich die App installiere, gibt es einen Schlüssel für userIsLoggedIn in SharedPreferences.

Dieser Block:

boolean userIsLoggedIn  = SharedPrefs.userIsLoggedIn(this);

// Then in another class...

 public static boolean userIsLoggedIn(Context context) {
    // For users updating apps, if the previous key-value is a string, convert it to boolean
    try {
        return context.getSharedPreferences(LOGIN_FILE, Context.MODE_PRIVATE)
                .getBoolean(USER_LOGGED_IN, false);
    } catch (ClassCastException e) {
        Logger.e(TAG, e.getMessage());
        context.getSharedPreferences(LOGIN, Context.MODE_PRIVATE)
                .edit()
                .putBoolean(USER_LOGGED_IN, false)
                .commit();
        return context.getSharedPreferences(LOGIN, Context.MODE_PRIVATE)
                .getBoolean(USER_LOGGED_IN, false);
    }
}

Nun sollte dies bei einer neuen Deinstallation false zurückgeben, aber wenn ich dies bei einer Neuinstallation debugge, erhalte ich beim Starten der App Folgendes.

enter image description here

Ich verwende auch Proguard, wenn das wichtig ist. Wenn das Gerät auf einem APK ohne Proguard ausgeführt wird, ist es in Ordnung. Das Ausführen von proguard auf anderen Geräten funktioniert einwandfrei.

38
AndyRoid

Da Nexus 6P läuft Android M, ich denke Automatische Backups ist das Problem.

Ich denke, Sie können allowBackup verwenden, um das zu stoppen.

Überprüfen Sie diese Antwort: https://stackoverflow.com/a/32010582/336312

76
code2be

In Android M und höheren Versionen speichern sie Anwendungs-Backups im Google-Treiber. Sie können dies deaktivieren, indem Sie zu Ihrem Projekt gehen. Manifest Datei unter Anwendung Abschnittsmenge Android:allowBackup="true" zu falsch. und Sie sind gut zu gehen.

10
Ashana.Jackol

sie können zu Ihrem Manifest hinzufügen:

        Android:fullBackupContent="false"
9
Mina Farid