PhoneApplicationService的任务在于控制Windows Phone 7 application 在任何状态下的寿命,包括Application在idle阶段时该处理的任务,管理Application状态改变时触发的事件,常用来保存Application的状态和设置。

  1.首先我们需要建一个PhoneApplicationService对象,用来管理状态。

  PhoneApplicationService phoneAppServeice = PhoneApplicationService.Current;

  2.在App.cs中添加俩个方法,用来加载Application状态和保存Application状态。

  1)加载方法如下:

  private void LoadState()
        {
            PhoneApplicationService phoneAppServeice = PhoneApplicationService.Current;
            IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;

string myValue;

if (settings.TryGetValue<string>("MyValue",out myValue))
            {
                 phoneAppServeice.State["MyValue"]=myValue;
            }
        }

  2)保存方法如下:

  private void SaveState()
        {
            PhoneApplicationService phoneAppServeice = PhoneApplicationService.Current;
            IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;

if (phoneAppServeice.State.ContainsKey("MyValue"))
            {
                settings["MyValue"] = phoneAppServeice.State["MyValue"];
            }
        }

  3.在App.cs事件中使用上诉俩个方法

  

   private void Application_Launching(object sender, LaunchingEventArgs e)
        {
            LoadState();
        }

private void Application_Activated(object sender, ActivatedEventArgs e)
        {
            LoadState();
        }

private void Application_Deactivated(object sender, DeactivatedEventArgs e)
        {
            SaveState();
        }

private void Application_Closing(object sender, ClosingEventArgs e)
        {
            SaveState();
        }

  

  4.在MainPage.xaml.cs中获取值和保存值

  

  1)保存如下

   private void myTextBox_TextChanged(object sender, TextChangedEventArgs e)
        {
            phoneAppServeice.State["MyValue"] = myTextBox.Text;

}

  2)获取如下

  

  private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
        {
            object myValue;

if (phoneAppServeice.State.ContainsKey("MyValue"))
            {
                if (phoneAppServeice.State.TryGetValue("MyValue", out myValue))
                {
                    this.myTextBox.Text = myValue.ToString();
                }
            }

}

  5.测试方法

  1)启动Application,在文本域中输入数据。

  2)按"back"键退出Application。

  3)再次进入Application,你会看到你输入的数据是一致的。

  4)再按"start"键退出Application。

  5)再次进入和上诉3一样

这说明值保存成功!

效果图如下

        

  6.代码下载

转载于:https://www.cnblogs.com/salam/archive/2010/12/28/1919213.html

Windows Phone 7中使用PhoneApplicationService类保存应用程序状态相关推荐

  1. 如何重新找到在Windows Live Mail 中直接打开修改保存并且不小心关闭的文件

    今天同事发来一个方案让给改一下,我直接在Windows Live Mail把文件打开了,然后满腔热情的进行完善 工作,花了宝贵的一个半小时,大功告成直接保存关闭!悲剧了,没有保存在工作目录中,应该是保 ...

  2. php输出mysql错误日志_PHP_PHP中把错误日志保存在系统日志中(Windows系统),【将错误记录到系统日志中】 - phpStudy...

    PHP中把错误日志保存在系统日志中(Windows系统) [将错误记录到系统日志中] 在 php.ini 中将 error_log 设置为: error_log = syslog 或者在运行时使用 i ...

  3. C#之windows桌面软件第十三课:C#中常用的类有哪些?构造函数怎么用?

    C#之windows桌面软件第十三课:C#中常用的类有哪些?构造函数怎么用? using System; using System.Collections.Generic; using System. ...

  4. php 系统日志,PHP中把错误日志保存在系统日志中(Windows系统)

    PHP中把错误日志保存在系统日志中(Windows系统) [将错误记录到系统日志中] 在 php.ini 中将 error_log 设置为: 复制代码 代码如下: error_log = syslog ...

  5. 关于Windows下记事本中保存编码的格式问题

    关于Windows下记事本中保存编码的格式问题 Windows下记事本保存文本文件的时候,可以选择不同的编码格式来保存文件,各种编码保存的文件的二进制是不同的,举例说明: 我们在记事本中输入123,选 ...

  6. android java 实体类 object变量 保存_Java中的实体类--Serializable接口、transient 关键字...

    在java中,实体类是一个非常重要的概念,我们可以在实体类中封装对象.设置其属性和方法等.关于实体类,也经常涉及到适配器模式.装饰者模式等设计模式.那么在实际代码开发中,关于实体类的注意事项有哪些呢? ...

  7. Windows注册表中保存的信息及环境变量中SystemRoot在注册表中的位置

    Windows注册表中的几个分项分别是什么 HKEY_LOCAL_MACHINE 是机器硬件信息的集散地 HKEY_CURRENT_USER 当前用户所用信息的储存地 HKEY_CLASSES_ROO ...

  8. Windows Phone 7 中的切换应用

    修正: 区别于桌面操作系统,Window Phone不支持应用程序在后台运行.这是为了避免了多个应用程序竞争有限的手机资源,由此避免了的处理速度和电池电量的急速下降.这里Windows Phone 7 ...

  9. 文件上传获取file的全路径名_Java中的File类与I/O流

    File类java.io.File类主要用于文件和目录的创建.查找和删除等操作,实际开发中必须用到.构造方法: File(String pathname); File(String parent, S ...

最新文章

  1. python ssh模块_windows下python SSH的使用——paramiko模块
  2. 正则不等于一个字符串_更正一个观念:“积食”不等于“吃多了”
  3. easyexcel 无模板写入_给位,问个问题,用easyExcel无模板导出数据时,怎么在指定单元格添加计算公式呢?...
  4. Bootstrap的学习
  5. ddt源码修改:HtmlTestRunner报告依据接口名显示用例名字
  6. deno mysql_从 Node 到 Deno
  7. 浙江网信办处置44家违规网站 包含网易游戏、花瓣网等
  8. Naïve UI——一个 Vue 3 组件库
  9. Hive:用Java代码通过JDBC连接Hiveserver
  10. 力扣-606. 根据二叉树创建字符串
  11. 阶段3 1.Mybatis_12.Mybatis注解开发_8 mybatis注解开发使用二级缓存
  12. 微信浏览器实现自动下载功能
  13. Windows驱动开发TraceView之日志打印
  14. Win10企业版激活方法
  15. LINUX企业应用案例精解 第2版 李晨光
  16. 你离大厂前端工作,升职加薪有时就差一点算法,今天全部教给你!
  17. 多智能体强化学习基本概念
  18. 3dsmax-拓扑插件Wrapit使用
  19. PowerShell的力量,第1部分
  20. Android网易新闻评论盖楼效果的实现

热门文章

  1. 理解Hinton的Capsule Networks1
  2. Springboot2 搭建 高性能Websocket服务器
  3. 软考网络管理员学习笔记4之第四章局域网技术
  4. MySQL笔记(一)创建数据库、创建表、修改表、删除表,以及建立约束
  5. relu函数为分段线性函数,为什么会增加非线性元素
  6. [Day14]Eclipse高级、类与接口作为参数返回值
  7. react初识生命周期
  8. 安恒杯月赛 babypass getshell不用英文字母和数字
  9. 通常情况下的中国剩余定理
  10. 高程5.7单体内置对象 5.8小结