【发布时间】:2010-12-02 01:58:05
【问题描述】:
我正在为我的应用程序使用 IsolatedStorageSettings.ApplicationSettings。所有与独立存储相关的代码都出现在我的 Application_Launching、Application_Activated、Application_Closing 和 Application_Deactivated 方法中,如下所示:
public IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
private void Application_Launching(object sender, LaunchingEventArgs e)
{
if (settings.Contains("myObjList"))
{
App.ObjList = (ObservableCollection<myObj>)settings["myObjList"];
}
else
{
settings.Add("myObjList", App.ObjList);
}
}
private void Application_Activated(object sender, ActivatedEventArgs e)
{
if (settings.Contains("myObjList"))
{
App.ObjList = (ObservableCollection<myObj>)settings["myObjList"];
}
else
{
settings.Add("myObjList", App.ObjList);
}
}
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
settings["myObjList"] = App.ObjList;
settings.Save();
}
private void Application_Closing(object sender, ClosingEventArgs e)
{
settings["myObjList"] = App.ObjList;
settings.Save();
}
所有这些都发生在每个新应用程序默认创建的 App.xaml.cs 文件中。
我尝试使用后退按钮和 Windows 按钮退出应用程序。让模拟器继续运行,我尝试使用后退按钮重新打开应用程序,然后导航到应用程序列表并打开。
我遇到的问题是,在加载或激活设置时。Contains["myObjList"] 返回 false 并继续将密钥重新添加到设置中。
有人知道为什么我的设置键(和值)没有保留吗?
【问题讨论】:
标签: c# windows-phone-7 persistence isolatedstorage application-settings