在我正在开发的应用程序中,我有一个自定义视图,当屏幕配置更改或应用程序移动到后台时,我需要保存实例状态。我实现了onSaveInstanceState()
和onRestoreInstanceState(Parcelable savedInstanceState)
,在屏幕配置更改的情况下,实例状态得以完美保存和恢复。但是,当应用移动到后台时,不会调用onSaveInstanceState()
。这意味着当活动再次进入前台时,我没有保存的实例状态。我的问题是:
当应用移动到后台时,为什么onSaveInstanceState()
没有被调用,当应用移动到后台时,是否可以调用我的视图onSaveInstanceState()
?
答案 0 :(得分:1)
当您按后退按钮离开活动时会发生这种情况。 - 零
当使用“后退”按钮离开应用程序时,Android系统不会调用onSaveInstanceState方法,这是预期的系统行为。后退按钮用于停止您的应用(阅读:活动)。
“后退”按钮完成您的“活动”,无需保存应用状态。但是如果有理由这样做,那么你应该覆盖onStop方法,例如将数据保存到那里的文件系统。
<强>来源:强>
http://developer.android.com/training/basics/activity-lifecycle/recreating.html (推荐阅读)
在某些情况下,您的活动会因此被销毁 正常的应用程序行为,例如当用户按下后退按钮或时 你的活动通过调用finish()来表示自己的破坏。
答案 1 :(得分:-3)
据我所知,当app进入后台时,在Activity上调用onPause()方法。所以请尝试将代码移动到onPause()方法。