发生了什么:
- 我打开我的应用程序,然后按下主页按钮离开一会儿。
- 我进入
设置 > 应用程序 > 管理应用程序 > 运行中
,在缓存的后台应用程序列表中找到我的应用程序,并停止它。 - 然后我按住主页按钮,在最近使用应用程序列表中选择我的应用程序,重新运行它。
[注意:这些步骤只是我强制出现测试人员看到的相同症状的方法--他们只是正常地进出应用程序,而不是强制关闭它。]
它打开了我离开时的活动,但状态不好。第一个问题是保存用户信息的内存已经丢失(如果应用程序被杀死,这是有道理的)。我通过使User类可序列化并将当前用户对象存储在onSaveInstanceState
中来解决了这个问题,然后在onCreate
中加载它。同样,我不得不重新创建我的ClientConnectionManager
才能让网络工作。
'重新加载'的活动运行良好,我可以浏览和使用新创建的活动,但如果我按下返回按钮回到在我强制停止应用程序之前创建的活动,我会收到一个异常,说User类不存在(ClassNotFoundException,显然在取消包裹时发生了)。
为什么会发生这种情况?当应用程序被杀死但仍然知道重新打开时要返回哪个活动时,正确的处理方式是什么?这种状态叫什么?