zoukankan      html  css  js  c++  java
  • Windows 8 生命周期管理(3)

    15.2 应用状态处理

    下面将介绍Metro风格的应用中,激活,挂起,恢复的具体方法,以及响应应用的生命周期事件。

    15.2.1 应用激活

    首先,重写OnLaunched处理函数。当应用被激活时,处于某些原因会发送Activated事件。Windows.UI.Xaml.Application类定义了一些方法,可以用来重写处理函数,处理不同激活类型的情况,有几种激活类型带有具体的可重写方法,对于其他的激活类型,重写OnActivated方法即可。

    下面的代码为应用程序定义了一个类。

    <Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    x:Class="AppName.App" >

    重写的OnLaunched方法,在用户启动应用程序时都会调用。“LaunchActivatedEventArgs”参数包含应用之前的状态和激活参数值,代码如下。

    using System;

    using Windows.ApplicationModel;

    using Windows.ApplicationModel.Activation;

    using Windows.UI.Xaml;

    namespace AppName

    {

    public partial class App

    {

    async protected override void OnLaunched(LaunchActivatedEventArgs args)

    {

    EnsurePageCreatedAndActivate();

    }

    // 如果之前没有创建,就创建一个MainPage,并激活窗口。

    private MainPage EnsurePageCreatedAndActivate()

    {

    if (Window.Current.Content == null)

    {

    Window.Current.Content = new MainPage();

    }

    Window.Current.Activate();

    return Window.Current.Content as MainPage;

    }

    }

    }

    之后,如果应用是被挂起然后终止的,还原应用数据。当用户切换到被终止的应用时,系统发送一个激活事件(Activated event),将“Kind”属性值设为“Launch”,“PreviousExecutionState”属性值设为“Terminated”或“ClosedByUser”,应用则会加载其存储的应用数据,并刷新其所展示内容。

    async protected override void OnLaunched(LaunchActivatedEventArgs args)

    {

    if (args.PreviousExecutionState == ApplicationExecutionState.Terminated ||

    args.PreviousExecutionState == ApplicationExecutionState.ClosedByUser)

    {

    // TODO: 使用之前存储的应用的数据,供界面内容的展示

    }

    else

    {

    // TODO: 界面内容使用默认值

    }

    EnsurePageCreatedAndActivate();

    }

    如果“PreviousExecutionState”的值为“NotRunning”,应用存储数据失败,并且应用会像初始化启动一样重新开始。

  • 相关阅读:
    使用vue3.0仿Mac系统的提醒事项做的一个TODO功能
    一些容易忽略的css选择器
    根据node节点生成VNode以及解析成node节点
    jQuery-day02
    jQuery-day01
    初探WebSocket
    Python-如何对字典集合进行排序
    sqlserver获取代理服务作业job的执行情况
    excel中多表汇总
    [javascript][转载]jQuery获取Select选择的Text和 Value
  • 原文地址:https://www.cnblogs.com/finehappy/p/2858205.html
Copyright © 2011-2022 走看看