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

    15.2.2 应用挂起

    首先,注册挂起事件处理函数,这表明应用在系统挂起它之前应将其数据保存,代码如下。

    using System;

    using Windows.ApplicationModel;

    using Windows.ApplicationModel.Activation;

    using Windows.UI.Xaml;

    partial class MainPage

    {

    public MainPage()

    {

    InitializeComponent();

    App.Current.Suspending += new SuspendingEventHandler(App_Suspending);

    }

    }

    之后,在挂起前储存应用的数据。当应用处理挂起事件时,可以将重要的应用程序数据,通过处理函数保存起来。应用程序使用“LocalSettings”属性(调用存储器API)同步保存简单的应用程序数据。

    处在挂起状态时,系统倾向于将应用和其数据保存在内存中,但是如果系统没有资源来让应用存在内存中,系统将会终止应用。当用户切回一个原本挂起状态,之后被终止的应用时,系统发出激活事件,并应在OnLaunched方法中还原应用的数据。

    系统终止应用时不会发出通知,所以务必在应用挂起时就存好应用程序的数据,以便当应用在终止之后,又被激活时可以恢复应用。

    15.2.3 应用恢复

    首先,注册恢复事件处理函数,为的是使用户在切换到其他应用后,再切换回来的事件进行处理,代码如下。

    partial class MainPage

    {

    public MainPage()

    {

    InitializeComponent();

    App.Current.Resuming += new Windows.UI.Xaml.EventHandler(App_Resuming);

    }

    }

    然后,刷新挂起之后所显示的内容。由于恢复事件不会上升到UI线程中出现,所以必须使用一个调度器(Dispatcher),将更新置于UI表面,所示代码如下:

    CoreDispatcher dispatcher = Window.Current.Dispatcher;

    private void App_Resuming(object sender, object e)

    {

    // There are no special arguments for the resuming event

    dispatcher.Invoke(CoreDispatcherPriority.Normal,

    (object invokedSender, InvokedHandlerArgs invokedArgs) =>

    {

    // TODO: Refresh network data

    }, this, null);

    }

    最后,如果应用所展示内容,没有需要刷新的,就不用处理恢复事件了。

  • 相关阅读:
    17.天堂和地狱只在你的一念之间
    14.事情原来可能更糟
    如何评价一个网站的人气(Link Popularity Check)
    1.人生何必一定要成功
    4.何不看开一点
    字符串到枚举的转换代码
    广州泳场一览表
    收集开源项目
    7.把“失去”当作“抛弃”
    经常使用的Oracle监控语句
  • 原文地址:https://www.cnblogs.com/finehappy/p/2858207.html
Copyright © 2011-2022 走看看