应用程序生命周期(墓碑机制(程序和页面))

转载 2012年03月22日 21:47:19

     由于Windows Phone 目前不支持第三方应用程序在后台运行,也就是说只有唯一一个第三方应用程序在前台运行,当用户离开应用程序页面时,应用程序会被操作系统终止(推送通知服务将在后面讲)。微软提供了另一种方法称之为tombstone,虽然在Mango更新中支持了所谓的“多任务”,但是我们还是需要处理墓碑化,在CodePlex就有这么一个开源项目,TombStoneHelper,可以帮助我们简化墓碑操作,但是我们首先来系统学习下墓碑机制以及应用程序生命周期。

      首先我们需要认识清什么是墓碑机制以及楚一般的应用程序生命周期和TombStone生命周期有什么区别。

tombstone是一个很形象的描述,Imaging this:操作系统对应用程序说,你要死了,你有什么东西赶紧记下来写在你的墓碑上吧~(10秒钟原则

    在WP7中用户在应用程序主界面点击Back按钮,和通常我们在WinForm程序中点击“关闭”按钮是一样的,结果都是退出应用程序。

生命周期处理事件,在App.xaml.cs中的英文描述是这样子的:

        // Code to execute when the application is launching (eg, from Start)
// This code will not execute when the application is reactivated
private void Application_Launching(object sender, LaunchingEventArgs e)
{
}

// Code to execute when the application is activated (brought to foreground)
// This code will not execute when the application is first launched
private void Application_Activated(object sender, ActivatedEventArgs e)
{
}

// Code to execute when the application is deactivated (sent to background)
// This code will not execute when the application is closing
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
}

// Code to execute when the application is closing (eg, user hit Back)
// This code will not execute when the application is deactivated
private void Application_Closing(object sender, ClosingEventArgs e)
{
}

翻译过来总结下就是:

分别介绍下,Launching事件:当应用程序启动时候调用,重新激活时不调用;通常用来加载应用程序的一些永久配置数据。

Closing事件:当应用程序关闭的时候调用,失去激活的时候不调用;通常用来保存一些应用程序永久配置数据到独立存储空间中。

 Activated事件:当程序重新激活的时候调用,启动的时候不调用;从PhoneApplicationService.State["key"]中读取一些应用程序临时数据。

Deactived事件:当程序失去激活的时候调用,关闭的时候不调用;通常用来使用PhoneApplicationService.State保存一些应用程序临时数据。

 我们不应该在以上几个事件中处理大量的数据,因为MS有一个称之为10秒钟原则的限制(为了更好的用户体验,超过10秒,用户会想可能程序出问题了~)。

前面的一直说的是程序的相关信息,而当程序被重新激活的时候,我们需要回复页面原来的显示状态。通过PhoneApplicationPage.State(注意啊,前面的是PhoneApplicationService.State)在离开页面和进入页面的时候保存和回复页面的显示状态信息。

离开页面的时候,PhoneApplicationPage.State["key"]保存界面的显示状态。

当进入页面的时候,PhoneApplicationPage.State["key"]恢复页面的额显示状态。

结束语:本文讲述了应用程序生命周期,Tombstone墓碑机制,以及10秒钟原则,如何保存和恢复应用程序的永久数据(独立存储IsolatedStorage),如何保存和恢复应用程序的临时数据(PhoneApplicationService.State["key"]),如何保存和恢复页面的显示状态(PhoneApplicationPage.State["key"])。希望对你有帮助,祝各位博友开心进步~

 

 具体请参见MSDN:Windows Phone 执行模型http://msdn.microsoft.com/zh-cn/library/ff769557(v=vs.92).aspx

Windows Phone 执行模型

此主题尚未评级 评价此主题
 
Windows Phone
 

 

2012/2/9

在 Windows Phone 执行模型下,当用户导航离开应用程序时,该应用程序通常会置于休眠状态。但是,当应用程序处于此睡眠状态时,操作系统可能会将其终止。本节介绍如何构建在此模型下提供无缝用户体验的应用程序。

2、web(asp.net):ASP.NET应用程序与页面生命周期

本文来自:http://www.cnblogs.com/suizhouqiwei/archive/2012/08/15/2637775.html    在本文中,我们将了解不同的事件,ASP.N...

ASP.NET应用程序与页面生命周期

原文: http://www.cnblogs.com/suizhouqiwei/archive/2012/08/15/2637775.html

ASP.NET应用程序与页面生命周期

ASP.NET应用程序与页面生命周期       在本文中,我们将了解不同的事件,ASP.NET 应用程序的生命周期以浏览器向 Web 服务器(对于 ASP.NET 应用程序,通常为 IIS...
  • yimison
  • yimison
  • 2015年07月16日 11:02
  • 132

ASP.NET 应用程序与页面生命周期(意译)

1、引言 2、两个处理步骤 2.1、创建ASP.NET环境2.2、用触发的MHPM事件处理请求 3、什么事件中应该做什么4、示例代码5、深入ASP.NET页面事件 1、引言 这篇文章...

.NET (C#) Internals: ASP.NET 应用程序与页面生命周期

.NET (C#) Internals: ASP.NET 应用程序与页面生命周期(意译)2010-04-29 16:05 by 吴秦, 5133 visits, 网摘, 收藏, 编辑前几天逛codep...

【深入ASP.NET原理系列】--ASP.NET请求管道、应用程序生命周期、整体运行机制

微软的程序设计和相应的IDE做的很棒,让人很快就能有生产力。.NET上手容易,生产力很高,但对于一个不是那么勤奋的人,他很可能就不再进步了,没有想深入下去的动力,他不用去理解整个框架和环境是怎么执行的...
  • jumtre
  • jumtre
  • 2015年12月29日 09:10
  • 718

ASP.NET应用程序和页面生命周期

【译】ASP.NET应用程序和页面生命周期 为何翻译此文   一、此文是Code Project社区2010年4月ASP.NET板块的最佳文章,说明了此文的份量;   二、锻炼自己的英文技术文章...

ASP.NET应用程序与页面生命周期

 ASP.NET应用程序与页面生命周期       在本文中,我们将了解不同的事件,ASP.NET 应用程序的生命周期以浏览器向 Web 服务器(对于 ASP.NET 应用程序,通常为...

ASP.NET应用程序与页面生命周期

ASP.NET应用程序与页面生命周期 转自:http://www.cnblogs.com/suizhouqiwei/archive/2012/08/15/2637775.html    ...
  • jackljf
  • jackljf
  • 2012年08月22日 17:29
  • 483

.NET (C#) Internals: ASP.NET 应用程序与页面生命周期

前几天逛codeproject时,遇到一篇比较好文章,不敢独享,故译之于君共享。Outline如下: 1、引言2、两个处理步骤 2.1、创建ASP.NET环境2.2、用触发的MHPM事件处...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:应用程序生命周期(墓碑机制(程序和页面))
举报原因:
原因补充:

(最多只允许输入30个字)