在隔离存储设置中声明密钥

时间:2014-04-30 06:44:47

标签: windows-phone-8 isolatedstorage

我的目标是检索上次应用程序关闭时存储的计数器值。 即我将计数器值存储在隔离存储器中。如果计数器的值为5且应用程序已关闭并再次启动,则应该能够检索5。 为了这个目的,我写了下面的代码,但我无法做出来。

IsolatedStorageSettings isoStoreSettings = IsolatedStorageSettings.ApplicationSettings;
int count=0;
isoStoreSettings["flag"];
if (isoStoreSettings["flag"]!="set")
{                
   isoStoreSettings["count"] = count;
   isoStoreSettings["flag"] = "set";
}


count = isoStorageSettings["count"];  //using the value of count stored previously

//some code which updates the count variable

isoStorageSettings["count"]=count;

此代码的问题是现在允许在lonelystorage中声明密钥,我们必须为该密钥分配一些值 但是如果我为该键分配值,它将在每次启动应用程序时重新初始化该键。 所以,如果有人能解决这个问题,请帮忙 即使有任何其他替代孤立存储的目标,我也请分享。

2 个答案:

答案 0 :(得分:0)

在Add方法中使用更新的计数值,如下所示:

    IsolatedStorageSettings isolatedStorageSettingsCount = IsolatedStorageSettings.ApplicationSettings;
if (isolatedStorageSettingsCount.Contains("count"))
            {
                isolatedStorageSettingsCount.Remove("count");
                isolatedStorageSettingsCount.Add("count",5);
                IsolatedStorageSettings.ApplicationSettings.Save();
            }
            else
            {
                isolatedStorageSettingsCount.Add("count",5);
                IsolatedStorageSettings.ApplicationSettings.Save();
            }

要检索您的计数值,请使用以下代码:

IsolatedStorageSettings isolatedStorageSettingsCount = IsolatedStorageSettings.ApplicationSettings;
string strCount = (string)isolatedStorageSettingsCount["count"];
int count=Convert.ToInt32(strCount);

答案 1 :(得分:0)

如果您想在每次启动应用时加载count,请将代码放入App.xaml.cs中的Application_Launching事件:

// declare static variable which you will be able to access from anywhere
public static int count;

private void Application_Launching(object sender, LaunchingEventArgs e)
{
    IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
    if (settings.Contains("count")) count = (int)settings["count"];
    else count = 0;
}

On Clising事件 - 保存您的变量:

private void Application_Closing(object sender, ClosingEventArgs e)
{
    IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
    if (settings.Contains("count")) settings["count"] = count;
    else settings.Add("count", count);
    settings.Save();
}

您可以从代码中的任何位置访问变量,如下所示:

int myVariable = App.count;
App.count++; 
// and so on

请注意,您还可以考虑ActivatedDeactivated个事件 - 有关详细信息,请参阅MSDN

我也不知道flag想要做什么,但上面的代码应该保存你的变量。