SharedPreferences未正确保存值

Aja*_*aco 2 android sharedpreferences xamarin.android xamarin

我正在尝试将字符串保存到共享首选项.我尝试这样做的方式如下:

ISharedPreferences _prefs = PreferenceManager.GetDefaultSharedPreferences(this);
ISharedPreferencesEditor _editor = _prefs.Edit();
_editor.PutString("myString", "123");
_editor.Commit();
Run Code Online (Sandbox Code Playgroud)

再往下我试着打印出我的字符串:

_txtView.Text = _prefs.GetString("myString", "Can't find string");
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,我的textview现在正确打印出"123".所以一切都按预期工作.然而; 共享偏好的意义在于它是持久的.因此,如果我现在尝试注释掉以下两行:

_editor.PutString("myString", "123");
_editor.Commit();
Run Code Online (Sandbox Code Playgroud)

然后再次构建,我的textview显示"找不到字符串".所以由于某种原因字符串没有被保存?谁知道为什么会这样?

谢谢!

Kil*_*man 7

在为您的设备构建和部署应用程序时,默认情况下Xamarin将删除任何现有的应用程序数据/缓存.这并不总是理想的,因为它会将您的数据重置为全新安装.

要保留数据,您需要更新选项:

  • 在Xamarin Studio中,选择工具>选项>项目> Android ...选中"在应用程序部署之间保留数据/缓存"

  • 在Visual Studio中,选择工具>选项> Xamarin> Android设置...选中"在应用程序部署之间保留数据/缓存"

执行此操作后,将保留在本地应用程序文件夹中创建的任何共享首选项或数据文件.