Подтвердить что ты не робот

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 при новой деинсталляции, но отлаживая это при новой установке, я получаю следующее в App Startup.

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

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

4b9b3361

Ответ 1

Так как Nexus 6P работает под управлением Android M, я думаю, что проблема Automatic Backups.

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

Отметьте этот ответ: fooobar.com/questions/182797/...

Ответ 2

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