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