代码之家  ›  专栏  ›  技术社区  ›  James Huddleston

iOS 4应用程序终止和撤消

  •  0
  • James Huddleston  · 技术社区  · 14 年前

    在使用iOS 4应用程序时,处理iOS 4应用程序终止的好方法是什么 NSUndoManager

    NSUndoManager公司 对于托管对象上下文。我还开始撤消分组,这样,如果用户点击“取消”按钮,任何更改都可以轻松撤消。如果用户点击“Save”,我只需删除undo管理器,更改就会变成永久性的。到目前为止,还不错。

    如果用户在编辑对象的过程中按下Home按钮(或接听电话),应用程序将被挂起。它向应用程序发送一个委托 applicationDidEnterBackground 我利用这个机会保存托管对象上下文。当然,上下文包含了新的编辑,只是在等待 .

    问题是:如果该应用程序后来被“取消挂起”,那么 NSUndoManager公司 仍然存在,一切正常。但是,如果应用程序在睡眠中被操作系统“杀死”,撤消堆栈将丢失,对对象所做的更改现在将成为永久性的。在重新启动时,我想将应用程序还原到与挂起前完全相同的状态,但这似乎需要我保存并还原撤消堆栈。不幸的是,我找不到一个明显的方法。

    1 回复  |  直到 14 年前
        1
  •  0
  •   tc.    14 年前

    你可以把世界上所有的时间都用在将你当前的应用程序状态序列化到磁盘上,这样你就可以在你停止的地方重新启动。。。

    ... 或者你可以通过减少内存占用来回避这个问题,这样你在后台时就不太可能被杀死。我怀疑后台由于phonecall应用程序是优先于其他后台应用程序,如果只是因为它是最近使用的。

    内存不足、更新应用程序或轻敲任务切换程序中的框都会杀死你的应用程序。你自己决定是否需要保留这片土地 精确状态 应用程序已启动。我认为Android只能将序列化的应用程序状态保留大约30分钟,因为短期记忆不会持续太久。

    (什么?)。foo.txt.swp文件存在?好几个月了!我怎么知道它是从哪里来的?你为什么不能给我看看这和那之间的变化foo.txt文件所以我可以决定是否要保留它?)

    推荐文章