【问题标题】:How to store a application mobile state in memory?如何将应用程序移动状态存储在内存中?
【发布时间】:2010-11-06 15:04:23
【问题描述】:

我正在使用 .NET Compact Framework 3.5 用 C# 开发一个移动应用程序。它需要将状态存储在内存中,即如果应用程序崩溃,应用程序必须重新启动到崩溃前的状态。

所有业务逻辑以及表单也必须存储。有没有一种简单的方法来管理这样的功能?序列化是正确的做法吗?

【问题讨论】:

  • 恢复相同状态后应用程序不会再次崩溃吗?如果您的意思是“较早的干净状态”,您不应该查看事务数据库吗?
  • 好问题!实际上,问题主要发生在用户手动关闭应用程序时(例如通过取出电池)。我认为 transactionnal 数据库对于这个应用程序来说太过分了。

标签: c# windows-mobile compact-framework


【解决方案1】:

起初您不应该将状态存储在 RAM 中,因为它在崩溃后会丢失。相反,您必须使用非易失性内存,例如存储崩溃。写入这种介质很慢,因此您必须采取相应措施。

我见过一些具有恢复应用程序的设备,可以将其配置为每隔一段时间将 RAM 的全部内容复制到闪存中。硬重置后,它可以将整个设备带到原来的位置(至少在上次复制 RAM 之前)。

也许这种事情对你来说太过分了。正如您所说,序列化所有对象并定期将它们复制到闪存可能更简单。什么被复制,什么不被复制,这将是你的责任。将应用程序初始化为之前的状态也是您的责任。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 2013-12-23
    • 2015-10-28
    • 1970-01-01
    相关资源
    最近更新 更多