Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android onCreate()方法在设备旋转时调用两次。(ICS)_Android - Fatal编程技术网

Android onCreate()方法在设备旋转时调用两次。(ICS)

Android onCreate()方法在设备旋转时调用两次。(ICS),android,Android,我正在开发android平板电脑应用程序,我必须管理应用程序的方向。我遇到一个问题,每次旋转设备时,都会调用onCreate() 我在Honeycomb(3.1)上通过在activity标记的Manifest.xml文件中设置这一行解决了这个问题,它运行良好 android:configChanges="keyboardHidden|orientation" 但当我在ICS平板电脑上测试我的应用程序时,这个问题再次出现。有人知道如何解决这个问题吗 谢谢 尊敬。onCreat

我正在开发android平板电脑应用程序,我必须管理应用程序的方向。我遇到一个问题,每次旋转设备时,都会调用onCreate()

我在Honeycomb(3.1)上通过在activity标记的Manifest.xml文件中设置这一行解决了这个问题,它运行良好

          android:configChanges="keyboardHidden|orientation"
但当我在ICS平板电脑上测试我的应用程序时,这个问题再次出现。有人知道如何解决这个问题吗

谢谢


尊敬。

onCreate()
将始终被调用,因为当方向更改时,活动始终会重新创建。这没什么错。您应该为此实施适当的行为,或者通过添加orientation=horizontal来禁用更改方向的可能性,例如,如果您的目标是
API level>13
,则必须添加文档中报告的
屏幕大小
标志:

  android:configChanges="keyboardHidden|orientation|screenSize"

注意:从Android 3.2(API级别13)开始,当设备在纵向和横向之间切换时,“屏幕大小”也会改变。因此,如果要防止在为API级别13或更高版本(如minSdkVersion和targetSdkVersion属性所声明)开发时由于方向更改而导致运行时重新启动,则必须在“方向”值之外包含“屏幕大小”值。也就是说,您必须声明android:configChanges=“orientation | screenSize”。但是,如果您的应用程序的目标API级别为12或更低,则您的活动始终会自行处理此配置更改(此配置更改不会重新启动您的活动,即使在Android 3.2或更高版本的设备上运行时也是如此)


参考资料:

Hi Marcin,谢谢您的回复。我的问题是,当我输入文本并旋转设备时,我的版面中有EditText,我输入的文本将消失。我的一些活动我在其中设置了一个自定义线程,并显示了我的自定义进度对话框,当我旋转它时,我的自定义线程将被调用两次,我的进度对话框也将消失。因为活动是重新创建的,所以它的整个生命周期都将重新启动。您应该使用saveInstanceState保存编辑的信息。因此,您应该使用onPause()方法将任何持久数据(如用户编辑)写入存储。此外,方法onSaveInstanceState(Bundle)在将活动置于这种后台状态之前调用,允许您将活动中的任何动态实例状态保存到给定的捆绑包中,以便在需要重新创建活动时在onCreate(捆绑包)中接收。“这对我也很有效。”。屏幕大小与重新启动活动有什么关系?非常感谢Blackbelt,不仅是这个问题,您的回答修复了我一天以来遇到的2-3个问题。(y) 难以置信。。。谢谢