发生了什么:
- 我打开我的应用程序,然后按主页按钮离开它片刻。
- 我进入
Settings > Applications > Manage Applications > Running
,在缓存的后台应用程序列表中找到我的应用程序,然后停止它。 - 然后我按住主页按钮并在最近的应用程序列表中选择我的应用程序,再次运行它。
[注意:这些步骤只是我强制测试人员看到的相同症状的方式——他们只是正常进出应用程序,而不是强制关闭。]
它在我离开它的活动中打开,但状态不佳。第一个问题是保存用户信息的内存已经消失(如果应用程序被杀死,这很有意义)。我通过使 User 类可序列化并将当前用户对象存储onSaveInstanceState
在onCreate
. 同样,我必须重新创建我ClientConnectionManager
的网络才能再次工作。
“重新加载”的活动运行得很好,我可以导航到并使用新创建的活动,但如果我改为点击后退按钮以返回在我强制停止应用程序之前创建的活动,我会收到一个异常说用户类不存在(ClassNotFoundException,显然是在进行拆包时)。
为什么会这样?当应用程序被杀死但仍然知道重新打开时要返回哪个活动时,处理这种情况的正确方法是什么?应用程序未运行但未完全关闭的这种状态的名称是什么?