我在tabhost中有2个活动.在Activity1中,我处理方向更改以及用户何时在活动之间切换正常.
当用户从Activity1切换到Activity2(通过选项卡选择),执行方向更改,然后切换回Activity1时,问题就开始了.当Activity2可见时,我的Activity1中发生的生命周期事件让我感到有点迷茫.
根据调试器,这是我的Activity1中发生的事件序列:
===方向改变===
onSaveInstanceState
onPause
onStop
onCreate
onStart
onRestoreInstanceState
onResume
===切换到活动2 ===
onSaveInstanceState
onPause
===在活动2中改变方向===
onStop
onCreate
onStart
===从Activity2切换
回来=== onResume
如您所见,我有机会在调用onSaveInstanceState时保存我的Activity1数据,当它被切换到Activity2时,但我从未调用onRestoreInstanceState来恢复它.
问题
为什么android在切换到另一个活动时调用我的onSaveInstanceState,如果它不打算在切换回时调用onRestoreInstanceState?
当Activity2可见时,为什么我的Activity1中没有onSaveInstanceState/onRestoreInstanceState?无论是否可见,我仍然必须保存/恢复数据,是吗?
在这种情况下,保存/恢复数据最安全的地方在哪里?如果它不在onSaveInstanceState/onRestoreInstanceState中,我如何访问该包以进行恢复?
是否有其他解决方案像其他回调我可以利用来缓解这个?
谢谢你的帮助!
格雷格