win8: Manage app lifecycle and state 管理生命周期和状态
Check:http://msdn.microsoft.com/en-us/library/windows/apps/hh986966.aspx
生命周期:
如图所示,app只有三种状态,running、notRunning、Suspended(所谓的挂起,即在后台中)
管理的数据:app data and session data.
app data:应用数据,永久性数据。使用roamingSettings 时数据会上传到云上!!使用localSettings 就只能在本地保存。
session data:会话数据。临时数据,程序关闭后释放。
2种数据都建议是在数据变化时及时保存。
存储与还原数据:
app data:
存储:
// Store the user's name for multiple sessions. var appDada = Windows.Storage.ApplicationData.current; var roamingSettings = appDada.roamingSettings; roamingSettings.values["username"] = nameInput.value;
“1、调用 Windows.Storage.ApplicationData.current 属性来获取应用的 ApplicationData 对象。
2、然后调用 ApplicationData 对象的 roamingSettings 属性来获取用于进行漫游设置的 ApplicationDataContainer。”
恢复数据:
无论应用在上次运行时是如何关闭的,我们都希望执行此代码(只需查看上次执行状态以获取会话数据),因此我们将该代码添加到用于检查应用上次执行状态的 if 子句外面。我们将它添加到 WinJS.UI.processAll 的 then 处理程序中,我们在这里注册我们的事件。
// Restore the user name. var userName = Windows.Storage.ApplicationData.current.roamingSettings.values["userName"]; if (username) { nameInput.value = userName; }
session data:
保存数据:
// Save the session data. WinJS.Application.sessionState.greetingOutput = greetingString;
恢复数据:
还原数据是在onactivated 中if(args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated )的else语句中
恢复。
// Restore application state here. var outputvalue = WinJS.Application.sessionState.greetingOutput;
在“猥琐”中有模拟各种状态的选项:
end!
作者:老Zhan
出处:http://www.cnblogs.com/mybkn/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。