Пример SharedPreferences
SharedPreferences preferences=getSharedPreferences("Test", getApplicationContext().MODE_MULTI_PROCESS)
Дата для резервной папки
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd_MMMM_yyyy HH_mm_ss");
String strDate = sdf.format(c.getTime());
Экспорт SharedPreferences
exportSH("Test.xml", strDate);
Экспорт XML-файла SharedPreferences в папке в папкуКаталог загрузок
private void exportSH(String sh_name, String strDate){
File sd = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) +
File.separator + "Backup Folder "+strDate+
File.separator );
boolean success = true;
if (!sd.exists()) {
success = sd.mkdir();
}
if (success) {
File data = Environment.getDataDirectory();
FileChannel source=null;
FileChannel destination=null;
String currentDBPath = "/data/"+ context.getPackageName() +"/shared_prefs/"+ sh_name;
String backupDBPath = sh_name;
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sd, backupDBPath);
try {
source = new FileInputStream(currentDB).getChannel();
destination = new FileOutputStream(backupDB).getChannel();
destination.transferFrom(source, 0, source.size());
source.close();
destination.close();
Toast.makeText(this, "Done", Toast.LENGTH_SHORT).show();
} catch(IOException e) {
e.printStackTrace();
Toast.makeText(this, "Failed", Toast.LENGTH_SHORT).show();
}
}}
Вы можете импортировать файлы с небольшими изменениями.Некоторые люди говорили, что это не будет так легко, но работает.Просто убедитесь, что вы создали пустой файл Sharedpreferences File перед импортом, потому что в противном случае он не будет работать.
Вы можете сделать это, например,
SharedPreferences dummy = getSharedPreferences("dummy", getApplicationContext().MODE_MULTI_PROCESS);
Editor editor = dummy.edit();
editor.putBoolean("asdf", true);
editor.commit();
И если вы импортируете его на тот жеМакет, где используются SharedPreferences, вы можете использовать это для обновления
finish();
startActivity(getIntent());