作为开发人员,我需要确保我的应用程序支持快速任务切换?
理想情况下,我正在寻找像开发人员检查列表的注意事项.
我做了搜索,但我发现的一切让我觉得我错过了一些东西,往往更多的是营销而不是开发人员的步骤和技术细节.
谢谢!
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的更多详细信息,这些确实帮助我开始了.
/克里斯