Windows 8 生命周期管理(4)

本文详细介绍了应用挂起和恢复的实现方法,包括如何在系统挂起应用前保存数据,以及应用恢复时如何刷新内容。重点在于利用挂起事件处理函数存储应用数据,并在恢复事件中更新UI,确保应用的流畅运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值