SharedPreferences не удаляется при удалении пользователем приложения

Кто-нибудь сталкивался с этой проблемой на устройстве Nexus 6P? Я получаю эту проблему только на Nexus 6P (под управлением Google Fi).

Когда я устанавливаю приложение, есть ключ для userIsLoggedIn внутри SharedPreferences,

Этот блок:

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);
    }
}

Теперь это должно вернуться false при новой деинсталляции, но при отладке при новой установке при запуске приложения я получаю следующее.

введите описание изображения здесь

Я также запускаю Proguard, если это имеет значение, при запуске устройства на APK без Proguard он работает нормально. Запуск proguard на любых других устройствах работает нормально.

3 ответа

Решение

Поскольку Nexus 6P работает под управлением Android M, я думаю, что автоматическое резервное копирование является проблемой.

Я думаю, что вы можете использовать allowBackup, чтобы остановить это.

Проверьте этот ответ: /questions/7664156/android-m-strannaya-problema-s-obschimi-nastrojkami/7664172#7664172

В версиях Android M и выше они хранят резервные копии приложений в драйвере Google, вы можете отключить это с помощью, перейдите к файлу манифеста вашего проекта в разделе Раздел приложений android:allowBackup="true" в ложь. и ты готов идти.

Вы можете добавить в свой манифест:

        android:fullBackupContent="false"
Другие вопросы по тегам