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”,应用存储数据失败,并且应用会像初始化启动一样重新开始。

  • 相关阅读:
    0713学期末了
    Oracle Redo日志的状态
    crontab调用shell访问sqlplus失败原因
    Solaris下批量杀进程
    oracle用户管理的完全恢复4:在ARCHIVELOG 模式(恢复打开的数据库)
    oracle用户管理的完全恢复3:在ARCHIVELOG 模式(恢复关闭的数据库)
    shell删除所有空行(忽略编码格式)
    oracle用户管理的完全恢复1:在NOARCHIVELOG 模式下执行恢复
    查看oracle用户权限
    OLTP与OLAP介绍
  • 原文地址:https://www.cnblogs.com/finehappy/p/2858205.html
Copyright © 2011-2022 走看看