9

我在处理活动方向时遇到了非常奇怪的问题。让我解释一下场景

我有活动 A 和 B。目前 A 处于横向模式,B(固定)处于纵向模式。如果用户更改 A 的方向,我将保存活动 A 的状态。我从A(横向)转到B(纵向),所以在这种情况下,A 在后台,所以它应该调用onSaveInstance(bundle)方法。但是它调用了,当我回来时,A 的 Resume() 被调用,我得到异常onResume()不能在A的onSaveInstance()之后调用。

这件事,让我很烦。

更新编辑

如果两个活动都可以有任何方向。然后活动 A onSaveInstance(bundle)在去 B 时不会调用并且它运行良好

4

1 回答 1

5

即使我仍在等待一些合乎逻辑的描述。但我解决了我的问题。当您从 Activity A 转到 B onsaveInstance()时,在每种情况下都会调用。因此,当返回活动重新启动但 onsaveInstance() 不再调用时。所以我得到

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

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

解决方案 -我从onSaveInstance(Bundle)中删除super.onSavaInstance( Bundle) 。并且问题解决了。它仍在为方向变化工作

于 2012-12-15T04:27:03.213 回答