为什么需要检查 OnCreate 内部的 savedInstanceState?

Why is it necessary to check savedInstanceState inside of OnCreate?

onCreate() 方法中 if 块的用途是什么?为什么要检查savedInstanceState是否为null?

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment())
                .commit();
    }
}

当您的 activity 被重新创建时,例如在屏幕旋转或其他 configuration change 之后,片段会自动重新附加。通过检查 savedInstanceState == null,您可以确保您没有重新添加已经为您添加的片段。

这样一来,您就可以记住某人上次离开您的应用程序时所在的位置。因此,例如 chrome 会记住您上次访问的标签页。