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