我有一个Windows Phone 7应用程序如何确保它支持快速任务切换?

Chr*_*aft 11 windows-phone-7

作为开发人员,我需要确保我的应用程序支持快速任务切换?

理想情况下,我正在寻找像开发人员检查列表的注意事项.

我做了搜索,但我发现的一切让我觉得我错过了一些东西,往往更多的是营销而不是开发人员的步骤和技术细节.

谢谢!

Chr*_*nig 14

FAS的大部分工作都是自动处理的.要记住的主要事项是Tombstoning对您的应用程序意味着什么.通过FAS恢复时,意图是您不必删除任何逻辑删除,因此通常不需要恢复视图模型状态或类似的东西.有几个地方你需要编写代码 - 这是一个快速清单.

PhoneApplicationPage.OnNavigatingFrom - 试验您正在使用的控件,以确保FAS恢复为您提供的数据.例如 - TextBox控件正确记住您放入的所有内容,但MediaElement不记得视频或播放头的位置.

PhoneApplicationPage.OnNavigatedTo - 您在OnNavigatingFrom中保存的任何内容都需要在OnNavigatedTo中重新应用.例如 - 将视频源重新加载到MediaElement中,重新定位视频并重新启动它.

Application.Activated - 此事件的事件参数现在包含一个名为IsApplicationInstancePreserved的属性.当应用程序通过FAS返回时,此属性返回TRUE;当应用程序从Tombstoning返回时,此属性返回FALSE.所以你有这样的代码:

private void Application_Activated(object sender, ActivatedEventArgs e)
{
    if (!e.IsApplicationInstancePreserved)
    {
        RestoreStateFromTombstone();
    }
}

private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
    SaveStateForTombstone();
}
Run Code Online (Sandbox Code Playgroud)

这是必需品.我还没有对FAS基础设施进行任何真正的压力测试,看看它在哪里打破,但这对我迄今为止所进行的实验来说非常有用.

有关更多信息,请参阅由Adina Trufinescu提供的名为Get Ready for Fast Application Switching的MIX11会议的简短视频,其中提供了有关FAS的更多详细信息,这些确实帮助我开始了.

/克里斯