Windows phone 7 EmailComposetTask/SMSCOComposetTask将丢失我的应用程序状态

Windows phone 7 EmailComposetTask/SMSCOComposetTask将丢失我的应用程序状态,windows-phone-7,state,Windows Phone 7,State,我正在开发我的第一个Windows Phone 7应用程序。我还没有访问实际设备的权限,所以我依赖SDK附带的模拟器 在我的应用程序中,我在需要的地方使用EmailComposeTask和SmsComposeTask。在emulator中调试我的应用程序时,我单击运行其中一个任务的按钮,它就会工作。但当我按下“后退”按钮退出任务并返回到我的应用程序时,应用程序状态消失了——就好像我重新启动它一样 但是,奇怪的是,有时这种情况不会发生。我不止一次地从其中一项任务中返回,以找到我的应用程序状态,以及

我正在开发我的第一个Windows Phone 7应用程序。我还没有访问实际设备的权限,所以我依赖SDK附带的模拟器

在我的应用程序中,我在需要的地方使用
EmailComposeTask
SmsComposeTask
。在emulator中调试我的应用程序时,我单击运行其中一个任务的按钮,它就会工作。但当我按下“后退”按钮退出任务并返回到我的应用程序时,应用程序状态消失了——就好像我重新启动它一样

但是,奇怪的是,有时这种情况不会发生。我不止一次地从其中一项任务中返回,以找到我的应用程序状态,以及我离开时的状态

因此,我的问题是:

  • 这只是模拟器的一个bug吗
  • 如果不一致,为什么不一致?在调用电子邮件或短信任务之前,我应该如何“保存”我的应用程序状态

  • 谢谢。

    您的页面将被删除,这就是您的应用程序似乎已重新启动的原因。这基本上意味着您的应用程序仍然存储在堆栈上,随时可以调用,但页面状态和其他数据信息丢失。要解决此问题,您需要处理要保留的任何数据的序列化

    对于瞬态数据,如页面状态(例如文本框、复选框等),可以使用。我认为限制是
    2mb
    。如果需要存储更多图像,则应将其存储在独立存储中(不太可能,除非需要保存图像)。您可以阅读有关该过程的信息。要了解墓碑整理的过程,您应该阅读以下内容。为了节省时间,您可以使用它来为您处理所有较低级别的存储细节,但无论如何,了解墓碑记录的过程是一个好主意,这样您就知道发生了什么

    你的应用程序不总是被删除的原因是
    EmailComposeTask
    不会立即导致删除。由此:

    以下是本地用户列表 当被调用时,不会 在中触发自动墓碑 呼叫应用程序:

    PhotoChooserTask
    CameraCaptureTask
    MediaPlayerLauncher
    EmailAddressChooserTask
    PhoneNumberChooserTask
    
    有三种情况下 后台应用程序将 立即被埋葬:

    User forward navigates away from an application [for example, user
    
    按开始键] 应用程序调用上面未列出的启动器或选择器 系统需要更多资源来执行前台活动


    正如您所看到的,这并不是说
    EmailComposeTask
    永远不会导致墓碑,所以您仍然应该处理它,但它解释了为什么有时会自动保持页面状态。

    您的页面被墓碑化,这就是为什么您的应用程序似乎已经重新启动。这基本上意味着您的应用程序仍然存储在堆栈上,随时可以调用,但页面状态和其他数据信息丢失。要解决此问题,您需要处理要保留的任何数据的序列化

    对于瞬态数据,如页面状态(例如文本框、复选框等),可以使用。我认为限制是
    2mb
    。如果需要存储更多图像,则应将其存储在独立存储中(不太可能,除非需要保存图像)。您可以阅读有关该过程的信息。要了解墓碑整理的过程,您应该阅读以下内容。为了节省时间,您可以使用它来为您处理所有较低级别的存储细节,但无论如何,了解墓碑记录的过程是一个好主意,这样您就知道发生了什么

    你的应用程序不总是被删除的原因是
    EmailComposeTask
    不会立即导致删除。由此:

    以下是本地用户列表 当被调用时,不会 在中触发自动墓碑 呼叫应用程序:

    PhotoChooserTask
    CameraCaptureTask
    MediaPlayerLauncher
    EmailAddressChooserTask
    PhoneNumberChooserTask
    
    有三种情况下 后台应用程序将 立即被埋葬:

    User forward navigates away from an application [for example, user
    
    按开始键] 应用程序调用上面未列出的启动器或选择器 系统需要更多资源来执行前台活动

    正如您所看到的,这并不是说
    EmailComposeTask
    永远不会导致墓碑,所以您仍然应该处理它,但这解释了为什么有时会自动保持页面状态