0

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

4

2 回答 2

1

上面的答案会将您的 Activity 锁定到特定的方向,这对于 Android 应用程序来说通常是不正确的行为。

您应该做的是存储 Activity 的状态,以便在重新创建它时,您可以使用存储的值重新填充 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"));
    }
}

当用户通过主页按钮或其他方式离开应用程序时,这也将起作用。

于 2013-04-06T19:07:57.763 回答
0

在清单中将此行放入您想要的所有活动中 肖像

android:screenOrientation="portrait" 
于 2013-04-06T18:57:05.490 回答