Windows Phone 7 中的切换应用

简介:   像Windows 系统的多任务一样,Windows Phone 7中也可以切换应用程序,注意不是关闭程序,而是切换。关闭程序是指将程序彻底从内存中移除了,但是切换程序,则该程序只是被deactivate了。

  像Windows 系统的多任务一样,Windows Phone 7中也可以切换应用程序,注意不是关闭程序,而是切换。关闭程序是指将程序彻底从内存中移除了,但是切换程序,则该程序只是被deactivate了。

  这里不具体讨论Windows Phone 7在启动时做了些什么,在关闭时做了些什么,在切换任务时做了些什么,本文仅是以PhoneApplicationService实现切换任务时保存应用程序时的状态,下次打开程序时原来之前保存的状态。至于前面那些问题,有时间会写博客跟大家分享。

   PhoneApplicationService 类

  位于Microsoft.Phone.Shell下的PhoneApplicationService类提供了获得应用程序生命周期信息的途径。这些信息包括应用程序闲置状态,以及应用程序激活与否时的状态的管理。

  来自MSDN解解:

The PhoneApplicationService class provides access to various aspects of the application’s lifetime. This includes management of the application’s idle behavior and management of the application’s state when it becomes active or inactive.

  我们可以看一下这个类的结构,我们在下面的代码中会用到该类的两个属性Current和State,至于其他的有兴趣的朋友可以自行研究。

  Current可以获取当前应用程序的PhoneApplicationService的实例:

  State是一个基于键值对的IDictionary,用来保存你想保存当前应用程序的状态:

实现步骤

  1. 创建一个Windows Phone 7 应用程序,向名为ContentPanel的Grid中添加TextBox,命名为tbUserName,Text属性清空。

  2. 双击tbUserName,导航到后置代码,编写tbUserName的TextChanged事件,如下图:

  3. 编辑应用程序启动事件,代码如上图。

  我们可以先运行下程序,在输入框中输入一些字母,然后按后退键,或者启动键,再次进入应用程序时,输入框仍然是空的。

  4. 接下来我们在App.xaml.cs中编写如下代码,设置状态和加载状态方法。

  5. 在Application_Launching、Application_Activated 中调用加载方法,Application_Deactivated、Application_Closing中调用设置状态方法。

6. 然后我们再来试一下在步骤3中的操作,会发现再次进入应用程序时,刚刚输入的内容还在输入框中。

  源代码下载:

目录
相关文章
|
8月前
|
Ubuntu API C++
C++标准库、Windows API及Ubuntu API的综合应用
总之,C++标准库、Windows API和Ubuntu API的综合应用是一项挑战性较大的任务,需要开发者具备跨平台编程的深入知识和丰富经验。通过合理的架构设计和有效的工具选择,可以在不同的操作系统平台上高效地开发和部署应用程序。
322 11
|
Linux C++ Windows
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
403 0
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
|
安全 前端开发 Windows
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
本文介绍了 Electron 应用在 Windows 中的更新原理,重点分析了 `NsisUpdater` 类的实现。该类利用 NSIS 脚本,通过初始化、检查更新、下载更新、验证签名和安装更新等步骤,确保应用的更新过程安全可靠。核心功能包括差异下载、签名验证和管理员权限处理,确保更新高效且安全。
653 4
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
|
Unix Linux Ruby
在windows和linux上高效快捷地发布Dash应用
在windows和linux上高效快捷地发布Dash应用
852 4
|
Linux iOS开发 开发者
跨平台开发不再难:.NET Core如何让你的应用在Windows、Linux、macOS上自如游走?
【8月更文挑战第28天】本文提供了一份详尽的.NET跨平台开发指南,涵盖.NET Core简介、环境配置、项目结构、代码编写、依赖管理、构建与测试、部署及容器化等多个方面,帮助开发者掌握关键技术与最佳实践,充分利用.NET Core实现高效、便捷的跨平台应用开发与部署。
1848 3
|
vr&ar C# 图形学
WPF与AR/VR的激情碰撞:解锁Windows Presentation Foundation应用新维度,探索增强现实与虚拟现实技术在现代UI设计中的无限可能与实战应用详解
【8月更文挑战第31天】增强现实(AR)与虚拟现实(VR)技术正迅速改变生活和工作方式,在游戏、教育及工业等领域展现出广泛应用前景。本文探讨如何在Windows Presentation Foundation(WPF)环境中实现AR/VR功能,通过具体示例代码展示整合过程。尽管WPF本身不直接支持AR/VR,但借助第三方库如Unity、Vuforia或OpenVR,可实现沉浸式体验。例如,通过Unity和Vuforia在WPF中创建AR应用,或利用OpenVR在WPF中集成VR功能,从而提升用户体验并拓展应用功能边界。
545 1
|
PHP Windows
【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
379 1
|
XML 缓存 前端开发
Electron-builder 是如何打包 Windows 应用的?
本文首发于微信公众号“前端徐徐”,作者徐徐深入解析了 electron-builder 在 Windows 平台上的打包流程。文章详细介绍了 `winPackager.ts`、`AppxTarget.ts`、`MsiTarget.ts` 和 `NsisTarget.ts` 等核心文件,涵盖了目标创建、图标处理、代码签名、资源编辑、应用签名、性能优化等内容,并分别讲解了 AppX/MSIX、MSI 和 NSIS 安装程序的生成过程。通过这些内容,读者可以更好地理解和使用 electron-builder 进行 Windows 应用的打包和发布。
1348 0
|
数据可视化 程序员 C#
C#中windows应用窗体程序的输入输出方法实例
C#中windows应用窗体程序的输入输出方法实例
412 0
|
Windows
【Windows】 Win10下报错:该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置”页面中创建关联
【Windows】 Win10下报错:该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置”页面中创建关联
2330 1