Как правильно реализовать SharedPreferencesBackupHelper? - PullRequest
0 голосов
/ 30 сентября 2019

первоначальное использование sharedpreferences.

BackupManager bm = new BackupManager(getApplicationContext());

    SharedPreferences sharedPreferences = getSharedPreferences("AppData", MODE_PRIVATE);
   if(sharedPreferences.getBoolean("my_first_time", true)) {
       sharedPreferences.edit().putBoolean("my_first_time", false).apply();
        sharedPreferences.edit().putString("user_id", String.valueOf(dbh.insertUserId())).apply();
        sharedPreferences.edit().putInt("noteIndex", -1).apply();
        sharedPreferences.edit().putInt("checklistIndex", -1).apply();
       bm.dataChanged();
   }

Резервное копирование данных

public class MyPrfsBackupAgent extends BackupAgentHelper {
    @Override
    public void onCreate() {
        SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, "AppData");
         addHelper("sharedprefs_key", helper);
    }
}

Моя цель - сделать резервную копию всего файла sharedpreferences«AppData» и восстановить его после переустановки функции не в состоянии выполнить свою задачу. Я попробовал его с помощью allowbackup в манифесте как true, так и false, и запустил его на моем реальном устройстве, чтобы проверить его, но, похоже, ничего не работает соответственно.

элементы добавлены в AndroidManifest.xml в попытке исправить это

        android:backupAgent=".BackupData$MyPrfsBackupAgent"

<meta-data android:name="com.google.android.backup.api_key"
        android:value="value" />

Я следовал документации по этому и другим ссылкам на stackoverflow, но ни одна из них не помогла мне решить проблему. Я был бы готов попробовать другой способ резервного копирования / восстановления, но не могу найти другой и не буду использовать autoBackup, потому что он нацелен на sdk 23, в то время как мой минимум равен 21.

1 Ответ

0 голосов
/ 30 сентября 2019

Все данные общих настроек хранятся в XML-файлах общих настроек в каталоге getFilesDir (). GetParentFile () в папке shared_prefs.

Просто скопируйте все файлы в любое место.

При переустановке сделайте обратное и перезагрузитесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...