WP7是否保存变量?

时间:2011-06-21 14:52:02

标签: variables windows-phone-7

当我的应用关闭时,我设置的值在我打开时仍然存在吗? 或者有办法将它们保存在某个地方吗?

2 个答案:

答案 0 :(得分:6)

不,他们不会,

当你从应用程序中跳出来时,应用程序将进入一个名为TombStoned的状态,你有责任存储和检索有用的页面元素。

为此,您需要在页面上存储以下事件的信息:

public override void OnNavigatedFrom(...)
{
    State["XXX"] = txtName.Text; // save your data on page state (keep it low in size!)
}

与您在以下事件中检索数据的方式相同

public override void OnNavigatedTo(...)
{
    txtName.Text = State["XXX"]; // read your data from page state
    // also check if state has any entry with this key
}

如果您需要存储应用程序级别数据,则需要在App.xaml.cs中执行以下事件:

public override void OnDeactivated(...)
{
    // Store in IsolatedStorageSettings
}

public override void OnActivated(...)
{
    // Read from IsolatedStorageSettings
}

有关Tombstoning的更多详细信息,请阅读以下文章:

http://www.scottlogic.co.uk/blog/colin/2011/05/a-simple-windows-phone-7-mvvm-tombstoning-example/

答案 1 :(得分:4)

当您关闭应用时,除非您将其保存在某处,否则所有数据信息都将丢失。对于瞬态数据,例如页面状态(例如文本框,复选框等),您可以使用PhoneApplicationPage.State。如果您需要永久存储数据以便下次用户启动应用时存储数据,则应将其存储在Isolated Storage中。您可以了解有关逻辑删除的更多信息以及何时应将状态存储在this MSDN page

CodePlex上还有一个名为Tombstone Helper的帮助程序库,可以在逻辑删除期间更轻松地存储数据。