none
windows phone 7为什么非要实现墓碑机制呢? RRS feed

  • 问题

  • 我用7.1版本写了一个程序,就放了一个textbox控件在里面,没有做保存和恢复textbox里面的数据这块儿,然后部署到真机,从真机上点击运行,然后在textbox里面输入一些内容,然后win键切出,第二天回来按返回键返回程序,发现之前输入的内容都还在,我就想问,既然数据还在,为什么非要实现墓碑来保存和恢复程序的数据呢?听有人说运行5个以上的程序,返回的时候多于5个的就进入了墓碑状态,可是我运行了一下,多于5个的程序根本就返回不回去,程序直接被关闭了,这谈保存和恢复数据还有什么意义呢?

    所以我想问,根据自己的测试,7.1写的程序里面的数据一直都在,那么就没必要保存和恢复程序里面的数据来保存状态了。

    有知道我哪里不对的吗,我真的想从真机上操作,然后看到墓碑的效果.可是怎么都看不到网上说的那种返回之后textbox里面的内容就没有了这种结果。

    请高人回答。。。。。谢谢啦

    2012年2月15日 2:02

答案

  • 当系统的资源紧张的时候,就会释放目前不在前台执行的程序所占的资源。即使该程序是在后台的五个之内。

    在这样的情况下,用户是可以点击Back按键,访问程序的堆栈的。

    这时,不做墓碑化处理,应用程序的状态就丢失了。

    在7.0时,应用只要切换到后台,都是会触发墓碑化的,在7.1时做了优化,系统帮我们完成了一部分保存应用快照的操作,但遇到了我在上面提及的情况,就得我们的程序自己来处理了。

    调试的时候,可以在项目的属性中,Debug页面,设置 Tombstone upon deactivation  while debuging选项,这样每次应用被切换到后台,都会触发墓碑化,


    专注于Windows Phone

    • 已标记为答案 Shi Ding 2012年2月28日 6:44
    2012年2月15日 4:10
    版主

全部回复

  • 当系统的资源紧张的时候,就会释放目前不在前台执行的程序所占的资源。即使该程序是在后台的五个之内。

    在这样的情况下,用户是可以点击Back按键,访问程序的堆栈的。

    这时,不做墓碑化处理,应用程序的状态就丢失了。

    在7.0时,应用只要切换到后台,都是会触发墓碑化的,在7.1时做了优化,系统帮我们完成了一部分保存应用快照的操作,但遇到了我在上面提及的情况,就得我们的程序自己来处理了。

    调试的时候,可以在项目的属性中,Debug页面,设置 Tombstone upon deactivation  while debuging选项,这样每次应用被切换到后台,都会触发墓碑化,


    专注于Windows Phone

    • 已标记为答案 Shi Ding 2012年2月28日 6:44
    2012年2月15日 4:10
    版主
  • 当系统的资源紧张的时候,就会释放目前不在前台执行的程序所占的资源。即使该程序是在后台的五个之内。

    在这样的情况下,用户是可以点击Back按键,访问程序的堆栈的。

    这时,不做墓碑化处理,应用程序的状态就丢失了。

    在7.0时,应用只要切换到后台,都是会触发墓碑化的,在7.1时做了优化,系统帮我们完成了一部分保存应用快照的操作,但遇到了我在上面提及的情况,就得我们的程序自己来处理了。

    调试的时候,可以在项目的属性中,Debug页面,设置 Tombstone upon deactivation  while debuging选项,这样每次应用被切换到后台,都会触发墓碑化,


    专注于Windows Phone


    那要是仍像以前那样处理tombstone会不会跟系统自动保存的冲突呢?
    • 已标记为答案 Edward_Nuo 2012年2月27日 12:09
    • 取消答案标记 Shi Ding 2012年2月28日 6:44
    2012年2月17日 7:43
  • 不会冲突,放心。

    专注于Windows Phone

    2012年2月19日 15:03
    版主
  • 既然微软要求程序要实现墓碑机制,为什么还要浪费时间去写那一部分帮我们保存应用快照操作的代码呢?既然微软在wp中实现了保存应用数据,为什么就实现这半斤八两的功能呢,有什么意义吗?

    2012年2月20日 9:31
  • 你可以认为系统保存的是整个程序的快照,注意该快照保存在内存中,可能被释放掉。

    开发者自己保存的是担心应用程序丢失的状态和数据,可以选择保存在内存中(可能被释放),可以保存在独立存储中(不会丢失数据)。


    专注于Windows Phone

    2012年2月20日 15:15
    版主