如果用户使用
登录了一次,我尝试将登录值保存为trueApplication.Current.Properties["isLoggedIn"] = "true";
但它不起作用。如果我从后台删除我的应用程序,它会再次显示登录页面,但如果用户已登录,则应显示下一页。
答案 0 :(得分:3)
使用“应用程序属性字典”时,您必须记住以下几点:
SavePropertiesAsync()
。仔细阅读official documentation并注意细节。
这是一个代码示例:
private async Task SaveApplicationProperty<T>(string key, T value)
{
Xamarin.Forms.Application.Current.Properties[key] = value;
await Xamarin.Forms.Application.Current.SavePropertiesAsync();
}
private T LoadApplicationProperty<T>(string key)
{
return (T) Xamarin.Forms.Application.Current.Properties[key];
}
// To save your property
await SaveApplicationProperty("isLoggedIn", true);
// To load your property
bool isLoggedIn = LoadApplicationProperty<bool>("isLoggedIn");
根据您的需求,您可以考虑使用Local Database或Settings Plugin。然而,为了节省一些原始值Application Properties
,方法应该足够好。
答案 1 :(得分:0)
Xamarin Forms现在包括Xamarin Forms Essentials,并包含您需要的Preferences组件。查看官方网站并尝试。 https://docs.microsoft.com/en-us/xamarin/essentials/preferences?tabs=ios
这是一个如何使用Essentials管理首选项的示例。
要在首选项中保存给定键的值:
Preferences.Set("my_key", "my_value");
要从首选项或默认值(如果未设置)中检索值:
var myValue = Preferences.Get("my_key", "default_value");
要从首选项中删除密钥:
Preferences.Remove("my_key");
要删除所有首选项:
Preferences.Clear();
支持的数据类型:
布尔
double
int
浮动
长
字符串
DateTime