当方向改变时,活动被恢复两次

时间:2014-12-18 17:13:47

标签: android oncreate android-orientation

我的Android应用程序活动存在一些问题。

我发现我的应用在' onCreateView()'中输入了两次当方向发生变化时,此活动的方法会引起我的问​​题。当我单击相应的按钮并且此活动开始就完全没问题,但是当方向发生变化时,我会遇到一些问题,因为输入两次,即活动重启两次......

......当方向发生变化时,是否有人知道活动的行为?为什么会这样?

非常感谢。

3 个答案:

答案 0 :(得分:2)

由于onCreateView()不是Activity生命周期的一部分,而是Fragment的一部分,我假设你的活动中有一个片段。 另外,我假设您使用FragmentManagerFragmentTransaction手动添加此片段。由于Android会在方向更改之间保留所有添加的片段,因此您很可能不会检查此片段中是否已存在片段,因此您需要再次添加片段,这会导致调用其他onCreateView

如果是这种情况 - 您需要检查savedInstance中的onCreate是否为空。如果是 - 你添加片段。否则活动会恢复,因此片段已经存在。

我知道答案有很多假设。但我仍在掌握我的心灵感应技巧:)

答案 1 :(得分:0)

调整onDestroy()的方向更改时,然后调用onCreate()。 更多信息:http://developer.android.com/guide/topics/resources/runtime-changes.html

答案 2 :(得分:0)

尝试在您的活动中的 AndroidManifest.xml 中添加:

android:configChanges="orientation|screenSize|keyboardHidden"

这意味着在方向更改时不会重新创建活动。