`
siweidashu
  • 浏览: 8802 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

WIN8学习日记1

阅读更多
Win8商店应用程序(Windows Store apps)开发,有如下方式:

1:Javascript + Html5

2:C#/C++/VB + XAML

我选择Javascript来开发,理由是对其他语言不熟悉。

首先创建一个默认的空白app

会产生几个默认文件:

1:default.html //这个是起始页面

2:default.js //default.html中加载了这个js,所以在程序执行显示起始页面时会加载和执行这个js

var app = WinJS.Application;
app.onactivated = function (eventObject) {
    if (eventObject.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {
        if (eventObject.detail.previousExecutionState !== Windows.ApplicationModel.Activation.ApplicationExecutionState.terminated) {
            //这里代表你第一次执行次程序.
        } else {
            //这里代表重新回到此程序
        }
        WinJS.UI.processAll();
    }
};
app.oncheckpoint = function (eventObject) {
    // 程序挂起
};
app.start();


app.onactivated在程序开始或状态被激活时会触发,可以在这里执行一些初始化操作。而app.oncheckpoint则是在程序即将被挂起时会触发,可以在这里保存当前运行中的程序状态和数据,以便在下次触发运行时恢复。

WinJS.UI.processAll函数主要是用来执行UI框架中的一些初始化和事件绑定。



Win8 Metro Style App生命周期有三个状态,分别为:Active(在前端)、suspend(到后端)、resume(回到前端),是一个循环的过程。没有退出,会一直保持在线。



在windows 8中,程序会由于使用者的切换或者系统进入低功耗状态而被挂起(suspended),当程序被挂起时,它仍旧驻留在内存中,当用户resuming时会被快速激活恢复running状态。但是,系统也可能因为需要释放内存或者节约电量而终止某些被挂起的程序。并且,系统只会在挂起程序时通过事件通知程序,而不会在终止程序时通知。所以如果你忽略这种情况,很可能程序会经常莫名其妙就down掉。
那么,怎么解决呢?
无疑我们需要在系统通知程序被挂起时,就要保存当前程序的执行状态(上下文)以及用户数据,以便于在程序被系统强行终止后用户重启时还能恢复挂起前的状态。系统提供了Windows.Storage.ApplicationData来帮助我们持久化保存数据,代码如下:

var appData = Windows.Storage.ApplicationData.current;
var localSettings = appData.localSettings;        
localSettings.values["state"] = currentState;


另外,系统还提供WinJS.Application.sessionState来保存session数据(程序终止后会被清空)
分享到:
评论

相关推荐

    安卓开发学习日记第五天——奇怪的bug出现了(VT-x说没就没)_莫韵乐的欢乐日记

    安卓开发学习日记第五天——奇怪的bug出现了(VT-x说没就没) 前情提要: 安卓开发学习日记第一天_Android Studio3.6安装 安卓开发学习日记第二天_破坏陷阱卡之sync的坑 安卓开发学习日记第三天_新手怪button 安卓...

    Win32DiskImager-0.9.5-binary.zip

    个人博客中提及的TF卡烧写工具,使用详情请参考我不定期更新的Jeston系列开发日记。如果觉得对您有的学习工作有帮助欢迎关注我的博客,相关文档的更新也会同步在我的gitee上,欢迎大家clone

    Turbo C/C++ for Windows 集成实验与学习环境 7.0

    课程设计指导、课程设计源程序等,同时还有2001年到2005年二级C语言的全部真题笔试试卷及答案与分析和10套全真上机模拟试题和详尽的答案与分析,“编程日记”功能可以让你记录你的C语言学习历程,“资料管理”功能让...

    Turbo C/C for Windows 集成实验与学习环境 V2007.5

    Turbo C/C for Windows 集成实验与学习环境是从事一线教学的大学教师根据 C 语言初学者的特点,量身定制的一个... “编程日记” 功能可以让你记录你的 C 语言学习历程, “资料管理” 功能让你大量的下载资料不再难找

    手机游戏编程学习笔记Ⅱ(2013)work版

    记录了使用VS2010学习cocos2d-x的示例程序HelloWorld的全部代码注释,以及配置Eclipse+ADT+CDT+Cygwin+VS2010+cocos2d-x的开发环境(WIN7)和相关问题,学习了一个简单的示例游戏,并详细注释了全部代码。...

    安卓开发学习日记第一天(笑)_Android Studio3.6安装_莫韵乐的快乐笔记

    安卓开发学习第一天 Android Studio3.6安装 没想到终于要写出自己的第一个博客了 反正是第一篇,有没有人看都无所谓(理智:129/129) 万事开头难,做下去就容易很多了 言归正传 工欲善其事,必先利其器 要学习安卓...

    pypy3.6-v7.3.1rc1-win32.zip

    TensorFlow是一个开放源代码的软件库,用于进行高性能数值计算。通过其灵活的架构,它允许用户轻松地部署计算工作在各种...此外,TensorFlow支持自动微分,这对于实现复杂的机器学习算法(如深度学习网络)至关重要。

    pypy3.6-v7.3.0rc1-win32.zip

    TensorFlow是一个开放源代码的软件库,用于进行高性能数值计算。通过其灵活的架构,它允许用户轻松地部署计算工作在各种...此外,TensorFlow支持自动微分,这对于实现复杂的机器学习算法(如深度学习网络)至关重要。

    pypy2.7-v7.3.3rc1-win32.zip

    TensorFlow是一个开放源代码的软件库,用于进行高性能数值计算。通过其灵活的架构,它允许用户轻松地部署计算工作在各种...此外,TensorFlow支持自动微分,这对于实现复杂的机器学习算法(如深度学习网络)至关重要。

    pypy3.6-v7.2.0rc1-win32.zip

    TensorFlow是一个开放源代码的软件库,用于进行高性能数值计算。通过其灵活的架构,它允许用户轻松地部署计算工作在各种...此外,TensorFlow支持自动微分,这对于实现复杂的机器学习算法(如深度学习网络)至关重要。

    pypy3.7-v7.3.3rc1-win32.zip

    TensorFlow是一个开放源代码的软件库,用于进行高性能数值计算。通过其灵活的架构,它允许用户轻松地部署计算工作在各种...此外,TensorFlow支持自动微分,这对于实现复杂的机器学习算法(如深度学习网络)至关重要。

    pypy2.7-v7.3.2rc1-win32.zip

    TensorFlow是一个开放源代码的软件库,用于进行高性能数值计算。通过其灵活的架构,它允许用户轻松地部署计算工作在各种...此外,TensorFlow支持自动微分,这对于实现复杂的机器学习算法(如深度学习网络)至关重要。

    pypy3.7-v7.3.2rc1-win32.zip

    TensorFlow是一个开放源代码的软件库,用于进行高性能数值计算。通过其灵活的架构,它允许用户轻松地部署计算工作在各种...此外,TensorFlow支持自动微分,这对于实现复杂的机器学习算法(如深度学习网络)至关重要。

    pypy2.7-v7.3.1rc1-win32.zip

    TensorFlow是一个开放源代码的软件库,用于进行高性能数值计算。通过其灵活的架构,它允许用户轻松地部署计算工作在各种...此外,TensorFlow支持自动微分,这对于实现复杂的机器学习算法(如深度学习网络)至关重要。

    pypy3.6-v7.3.3rc1-win32.zip

    TensorFlow是一个开放源代码的软件库,用于进行高性能数值计算。通过其灵活的架构,它允许用户轻松地部署计算工作在各种...此外,TensorFlow支持自动微分,这对于实现复杂的机器学习算法(如深度学习网络)至关重要。

    pypy3.6-v7.3.2rc1-win32.zip

    TensorFlow是一个开放源代码的软件库,用于进行高性能数值计算。通过其灵活的架构,它允许用户轻松地部署计算工作在各种...此外,TensorFlow支持自动微分,这对于实现复杂的机器学习算法(如深度学习网络)至关重要。

    tensorflow_data_validation-0.21.1-cp36-cp36m-win_amd64.whl

    TensorFlow是一个开放源代码的软件库,用于进行高性能数值计算。通过其灵活的架构,它允许用户轻松地部署计算工作在各种...此外,TensorFlow支持自动微分,这对于实现复杂的机器学习算法(如深度学习网络)至关重要。

    tensorflow_data_validation-0.21.1-cp37-cp37m-win_amd64.whl

    TensorFlow是一个开放源代码的软件库,用于进行高性能数值计算。通过其灵活的架构,它允许用户轻松地部署计算工作在各种...此外,TensorFlow支持自动微分,这对于实现复杂的机器学习算法(如深度学习网络)至关重要。

    tensorflow_data_validation-0.21.1-cp35-cp35m-win_amd64.whl

    TensorFlow是一个开放源代码的软件库,用于进行高性能数值计算。通过其灵活的架构,它允许用户轻松地部署计算工作在各种...此外,TensorFlow支持自动微分,这对于实现复杂的机器学习算法(如深度学习网络)至关重要。

    pypy3.6-v7.3.1-win32.zip

    TensorFlow是一个开放源代码的软件库,用于进行高性能数值计算。通过其灵活的架构,它允许用户轻松地部署计算工作在各种...此外,TensorFlow支持自动微分,这对于实现复杂的机器学习算法(如深度学习网络)至关重要。

Global site tag (gtag.js) - Google Analytics