Android 11引入了Scoped Storage,它修改了应用程序访问设备存储的方式。在Android 11中,当卸载应用程序时,与该应用程序相关的数据也将被清除。但是,应用程序有时需要保留数据,即使在卸载应用程序之后也是如此。在这种情况下,可以将应用程序数据存储在设备上的其他位置,例如shared preferences或自定义文件。
以下是一个示例,展示如何使用shared preferences来保存数据,即使卸载应用程序也不会丢失:
public static void saveData(Context context, String key, String value) {
SharedPreferences preferences = context.getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString(key, value);
editor.apply();
}
public static String getData(Context context, String key, String defaultValue) {
SharedPreferences preferences = context.getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
return preferences.getString(key, defaultValue);
}
通过使用SharedPreferences的实例,可以将键值对保存在应用程序的私有文件中。即使卸载应用程序,这些数据也将保留在设备上,直到用户手动删除它们。
要在Android 11中保留应用程序数据,请考虑将数据保存在shared preferences或内部/外部文件中。如果需要保存大量数据,则可以考虑使用content provider或network storage。