我的Android应用程序活动存在一些问题。
我发现我的应用在' onCreateView()'中输入了两次当方向发生变化时,此活动的方法会引起我的问题。当我单击相应的按钮并且此活动开始就完全没问题,但是当方向发生变化时,我会遇到一些问题,因为输入两次,即活动重启两次......
......当方向发生变化时,是否有人知道活动的行为?为什么会这样?
非常感谢。
答案 0 :(得分:2)
由于onCreateView()
不是Activity生命周期的一部分,而是Fragment的一部分,我假设你的活动中有一个片段。
另外,我假设您使用FragmentManager
和FragmentTransaction
手动添加此片段。由于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"
这意味着在方向更改时不会重新创建活动。