每当我屏幕自动旋转时,onCreate都会调用

时间:2013-04-06 18:41:42

标签: android

在我的应用程序中,我使用onCreate()方法初始化各种变量。但是,每当我旋转设备并且屏幕自动旋转时,再次调用onCreate(),重新初始化我的变量。它是如何工作的?当我启动应用程序时,我应该把我只想运行一次的代码放在哪里?

2 个答案:

答案 0 :(得分:1)

以上答案会将您的活动锁定为特定方向,这通常不适合Android应用。

您应该做的是存储活动的状态,以便在重新创建时,您可以使用存储的值重新填充UI。

protected void onSaveInstanceState (Bundle outState) {
   super.onSaveInstanceState(outState);
   // put your values in the Bundle
   outState.putString("TextView1Text", textView1.getText()); // for example;
}

然后在onCreate()方法中,您可以恢复值

protected void onCreate (Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null) {
        textView.setText(savedInstanceState.getString("TextView1Text"));
    }
}

当用户通过主页按钮或其他方式离开应用程序时,此功能也可用。

答案 1 :(得分:0)

在清单中将此行放在您想要PORTRAIT

的所有活动中
android:screenOrientation="portrait"