Android activity的onCreate()
方法被调用两次通常是由于以下几个原因造成的:
onCreate()
方法被调用两次。为了解决这个问题,可以在AndroidManifest.xml文件中对应Activity的配置中添加android:configChanges="orientation|screenSize"
,这样就可以阻止Activity在屏幕旋转时被销毁和重新创建。
onCreate()
方法被调用两次。为了解决这个问题,可以在AndroidManifest.xml文件中对应Activity的配置中添加android:configChanges="uiMode"
。
onCreate()
方法,导致它被调用两次。请确保你没有在代码中多次调用onCreate()
方法。如果以上方法都无法解决问题,可以通过在onStart()
方法中添加一个标记来检测onCreate()
方法是否被调用两次:
private boolean onCreateCalled = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
onCreateCalled = true;
// your code here
}
@Override
protected void onStart() {
super.onStart();
if (onCreateCalled) {
onCreateCalled = false;
// your code here
}
}
这种方法会在第一次onCreate()
方法被调用后将标记设置为true,并在onStart()
方法中检测标记是否为true。如果是true,则表示onCreate()
方法被调用了两次,可以在此处执行你需要的代码。
上一篇:Android ACTION_SCREEN_OFF intent的意义
下一篇:Android Activity Result API与ViewModel:如何引用ActivityResultRegistry