【问题标题】:How do I preserve Activity state across Dalvik VM crashes?如何在 Dalvik VM 崩溃时保留 Activity 状态?
【发布时间】:2012-02-23 13:47:19
【问题描述】:

我正在 Nexus One 上为 Froyo 开发。我有一个问题,即 dalvik vm 崩溃(在 logcat AndroidRuntime 中特别提到它正在关闭 VM)并关闭正在运行的活动和服务。我的应用程序是一个单一的活动。 onSaveInstanceState 在 VM 关闭时执行,并在其中将一些数据(一个 int 和两个字符串)保存到 savedInstanceState Bundle。当我再次启动 Activity 时,传递给 onCreate() 的 savedInstanceState Bundle 为 null 并且根本不调用 onRestoreInstanceState。当 Activity 被销毁以回收内存时,这工作得非常好——只是在 VM 崩溃时不会。如何在这种性质的崩溃中保留信息?

谢谢,

杰斯

【问题讨论】:

  • 您能否提供有关您所看到的“崩溃”的更多详细信息?你有一个本地堆栈转储吗? java异常+堆栈跟踪?
  • 我得到了一些崩溃信息(堆栈转储 + AndroidRuntime 提到 VM 正在关闭),但我的问题是我自己对平台缺乏了解。克里斯在下面的回答是我所缺少的。谢谢,

标签: android crash restore dalvik savestate


【解决方案1】:

当 VM 被拆除并重新启动时,VM 的内存会被重置。

在 onSaveInstanceState() 期间将状态保存到持久存储,如果在 Activity 重新启动时 savedInstanceState 为 null,请读入持久设置并删除它们。

【讨论】:

  • 感谢您的帮助,这正是我需要知道的。
猜你喜欢
  • 2011-02-05
  • 1970-01-01
  • 2012-03-08
  • 1970-01-01
  • 1970-01-01
  • 2014-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多