Android不会自动备份SharedPrefs,但是可以通过以下代码示例来手动备份SharedPrefs数据到外部存储器:
private void backupSharedPreferences() {
try {
File backupFile = new File(Environment.getExternalStorageDirectory(), "shared_prefs_backup.xml");
File sharedPrefsFile = new File(getApplicationInfo().dataDir, "shared_prefs/your_shared_prefs_name.xml");
FileInputStream fis = new FileInputStream(sharedPrefsFile);
FileOutputStream fos = new FileOutputStream(backupFile);
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
fos.write(buffer, 0, bytesRead);
}
fis.close();
fos.close();
// 备份成功
Log.d("Backup", "SharedPrefs备份成功");
} catch (Exception e) {
e.printStackTrace();
// 备份失败
Log.e("Backup", "SharedPrefs备份失败");
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
backupSharedPreferences();
}
请注意,在Android Q(10)及以上版本中,由于存储权限限制,需要使用特殊的方式来备份和恢复SharedPrefs数据。