gpt4 book ai didi

xamarin - 使用 Application.Current.Properties 的持久存储不起作用

转载 作者:行者123 更新时间:2023-12-04 17:44:43 25 4
gpt4 key购买 nike

我正在尝试在 Xamarin.Forms 中实现持久存储。在 Xamarin.Forms 中进行研究后,我决定使用 Application.Current.Properties属性(property)。

看起来只有当应用程序仍然存在时它才能工作。如果我关闭应用程序并再次启动它 Application.Current.Properties是空的。

有谁知道我是否做错了什么?我可以通过其他方式实现此功能吗?

像往常一样,谢谢大家。

最佳答案

我在 Application.Current.Properties 上遇到了很多问题在安卓上。我强烈建议使用 Xamarin Settings插件而不是我从来没有遇到过任何问题。即使应用程序关闭,它也是持久的。
话虽如此 Application.Current.Properties即使您关闭应用程序也应该可以工作。不知道为什么它不会,但它也不会让我感到惊讶。
*编辑:安装后使用,基本上是CrossSettings.Current是将完成工作的插件类,但该示例只是创建了一个单独的属性来访问它。所以创建一个新文件,我们称之为 设置实现 :

public static class SettingsImplementation {

#region Instance

private static Lazy<ISettings> _appSettings;

public static ISettings AppSettings {
get {
if(_appSettings == null) {
_appSettings = new Lazy<ISettings>(() => CrossSettings.Current, LazyThreadSafetyMode.PublicationOnly);
}

return _appSettings.Value;
}
set {
_appSettings = new Lazy<ISettings>(() => value, LazyThreadSafetyMode.PublicationOnly);
}
}

#endregion

private const string UserNameKey = "username_key"; //Key used to get your property
private static readonly string UserNameDefault = string.Empty; //Default value for your property if the key-value pair has not been created yet

public static string UserName {
get { return AppSettings.GetValueOrDefault<string>(UserNameKey, UserNameDefault); }
set { AppSettings.AddOrUpdateValue<string>(UserNameKey, value); }
}
}
然后要使用它,您可以在应用程序的任何位置执行此操作:
SettingsImplementation.UserName = "something";
string username = SettingsImplementation.UserName;

关于xamarin - 使用 Application.Current.Properties 的持久存储不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39470162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com