如何在Xamarin.Forms中存储应用程序设置

A. *_*nha 33 xamarin xamarin.forms

我们如何在Xamarin.Forms中存储和检索App设置作为键值对?就像应用程序关闭时一样,我们可以存储用户首选项,并且在重新启动应用程序时,我们可以获取这些值.

A. *_*nha 47

它也可以通过这种方式使用 Properties Dictionary

用于存储数据:

Application.Current.Properties ["id"] = someClass.ID;
Run Code Online (Sandbox Code Playgroud)

用于获取数据:

if (Application.Current.Properties.ContainsKey("id"))
{
    var id = Application.Current.Properties ["id"] as int;
    // do something with id
}
Run Code Online (Sandbox Code Playgroud)

ref:https://developer.xamarin.com/guides/xamarin-forms/working-with/application-class/#Properties_Dictionary

  • Application.Current.Properties 更多关于在激活(OnStart/OnSleep/OnResume)之间保留应用程序状态 (3认同)
  • 请注意,您不应将其用于用户设置。这些属性被序列化为一个 xml 文件,并且不使用底层平台的本机设置/首选项机制。例如,在 iOS 中它不会在 NSUserDefaults 中存储项目。您将无法从系统的设置包 (https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/UserDefaults/Preferences/Preferences.html) 修改它 (2认同)

Sus*_*ver 6

我使用的设置插件Xamarin和WindowsXamarin.Forms,因为这是在设备层面实现了上涨空间,你可以从任何形式的项目,PCL库访问这些设置,或者您的应用程序内的原生项目.

  • Nuget:Xam.Plugins.Settings

private const string UserNameKey = "username_key";
private static readonly string UserNameDefault = string.Empty;
Run Code Online (Sandbox Code Playgroud)
public static string UserName
{
  get { return AppSettings.GetValueOrDefault<string>(UserNameKey, UserNameDefault); }
  set { AppSettings.AddOrUpdateValue<string>(UserNameKey, value); }
}
Run Code Online (Sandbox Code Playgroud)


Bil*_*iss 5

Application对象(在VS中,您获得了一个App继承自该类的类,我认为Xamarin Studio模板可能略有不同)具有Properties专门用于此目的的字典。如果需要确保立即保存属性,则Application.SavePropertiesAsync可以调用一种方法。