为什么会这样? saveInstanceState = NULL

时间:2015-08-08 09:02:03

标签: android android-studio

Error

上述问题在两次调试中出现一次。奇怪的是应用程序没有崩溃,它停止响应。

enter image description here

这是什么意思?内心发生了什么错误?

2 个答案:

答案 0 :(得分:1)

你应该真正阅读the documentation on this,它会帮助你很多。

从以前的实例重新创建Activity时,会设置savedInstanceState字段。这发生在例如当设备更改方向或用户导航时,然后导航回您的活动。设置该字段后,您可以在用户离开时恢复活动状态。

当您的“活动”之前没有要恢复的状态时,savedInstanceState字段为null

当您的活动即将被销毁时,您可以通过覆盖活动中的savedInstanceState并将其添加到onSaveInstanceState(Bundle bundle)来向Bundle添加变量。下次调用您的活动onCreate(Bundle savedInstanceState)时,onSaveInstanceState()中将为您提供Bundle中设置的字段。

最后,当您在应用程序的主(UI)线程上做太多工作时,会显示“应用程序无响应”对话框。但是,当您连接调试器时,也会发生这种情况。如果您显示此对话框附加调试器我不会担心它。但是,如果在正常使用你的应用程序期间显示此对话框,这表明你在主线程上执行了太多的处理,你应该将繁重的工作移动到后台线程,例如通过使用Loader,AsyncTask,IntentService,Thread或任何其他可用的选项。

答案 1 :(得分:0)

这里有两件事,首先是

  

saveInstanceState = null

你在调试器中看到的并不是什么不寻常的事。有时它是空的,有时它不是。这就是Android框架的工作原理; - )

有关该内容的更多信息,请阅读有关活动生命周期的官方文档:https://developer.android.com/training/basics/activity-lifecycle/recreating.html#RestoreState

第二件事是ANR(应用程序没有响应)窗口在调试应用程序时发生了很多。只需按WAIT就可以了。