我在处理活动方向时面临非常奇怪的问题。让我解释一下情景
我有活动A和B.当前A处于横向模式,B(固定)处于纵向模式。如果用户改变A的方向,我正在保存活动状态A.我从 A(风景)转到 B(肖像)所以在这种情况下A是在背景中所以它应该调用 onSaveInstance(bundle)方法。但它调用,当我回来时,然后调用Resume()上的A,我得到异常 onResume()无法在 onSaveInstance()之后调用A.
这是让我讨厌的事情。
更新修改
如果两个活动都有任何方向。然后活动A onSaveInstance(捆绑)在去B时没有调用,而且运行良好
答案 0 :(得分:5)
即使我还在等待一些逻辑描述。但我解决了我的问题。在每种情况下,当你从活动A到B onsaveInstance()进行调用时。所以当回来活动重启时,但onsaveInstance()不会再次调用。所以我得到了
onResume() can not be called after onSaveInstance(Bundle)
原因 - 我认为活动状态已经保存,因此无法调用onResume()。而主要问题是onSaveInstance(Bundle)不是活动生命周期的一部分所以它非常痛苦。
解决方案 - 我从 onSaveInstance(Bundle)中删除 super.onSavaInstance(Bundle)。问题解决了。它仍然适用于方向变化