我有一个关于旋转Android设备的问题。 我的代码在onCreate(...)中记录了一个静态和非静态属性。
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
static int sn;
int n;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sn++;
n++;
Log.i("onCreate", String.format("sn=%d n=%d", sn, n));
}
}
屏幕方向为竖屏。当我第一次运行代码时,我收到了以下信息:
onCreate(): sn=1 n=1
我将屏幕旋转为横向后,出现了:
onCreate(): sn=2 n=1
我再次将屏幕旋转为竖屏后,出现了这个问题:
onCreate(): sn=3 n=1
onCreate(): sn=4 n=1
我的问题是:
- 当设备旋转回竖屏时,如何防止onCreate(...)被调用两次?
- 当设备旋转时,如何保存非静态变量的值?