android中活动方向的奇怪行为改变

时间:2012-12-13 10:08:54

标签: android android-activity android-orientation

我在处理活动方向时面临非常奇怪的问题。让我解释一下情景

我有活动A和B.当前A处于横向模式,B(固定)处于纵向模式。如果用户改变A的方向,我正在保存活动状态A.我从 A(风景)转到 B(肖像)所以在这种情况下A是在背景中所以它应该调用 onSaveInstance(bundle)方法。但它调用,当我回来时,然后调用Resume()上的A,我得到异常 onResume()无法在 onSaveInstance()之后调用A.

这是让我讨厌的事情。

更新修改

如果两个活动都有任何方向。然后活动A onSaveInstance(捆绑)在去B时没有调用,而且运行良好

1 个答案:

答案 0 :(得分:5)

即使我还在等待一些逻辑描述。但我解决了我的问题。在每种情况下,当你从活动A到B onsaveInstance()进行调用时。所以当回来活动重启时,但onsaveInstance()不会再次调用。所以我得到了

onResume() can not be called after onSaveInstance(Bundle)

原因 - 我认为活动状态已经保存,因此无法调用onResume()。而主要问题是onSaveInstance(Bundle)不是活动生命周期的一部分所以它非常痛苦。

解决方案 - 我从 onSaveInstance(Bundle)中删除 super.onSavaInstance(Bundle)。问题解决了。它仍然适用于方向变化