Android onSaveInstanceState()在onCreateView()之前调用?

Android onSaveInstanceState()在onCreateView()之前调用?,android,android-fragments,Android,Android Fragments,我正在使用android数据绑定,我正在将片段的布局扩展为一个全局绑定变量,其中包含: @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { binding = MyFragmentBinding.inflate(i

我正在使用android数据绑定,我正在将片段的布局扩展为一个全局
绑定
变量,其中包含:

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
                         @Nullable Bundle savedInstanceState) {
    binding = MyFragmentBinding.inflate(inflater, container, false);
    return binding.getRoot();
}
我收到一些nullpointer崩溃,crashlytics指向这一行:

@Override
public void onSaveInstanceState(Bundle outState) {
    binding.mapView.onSaveInstanceState(outState);
}
错误是:
由java.lang.NullPointerException引起:尝试读取空对象引用上的字段'com.google.android.gms.maps.MapView net.kjulio.myapp.databinding.MyFragmentBinding.MapView'


为什么会这样?在我看来,只有在
onCreateView()
之前调用了
onSaveInstanceState()
时,这才可能实现。这可能吗?

我在Android 6上观察到了完全相同的行为<代码>onSaveInstanceState()
由活动的
onSaveInstanceState()
触发。活动和片段生命周期的干扰非常混乱。您对此问题的解决方案是什么?这是预期的行为:```但是注意:在onDestroy()之前的任何时候都可以调用此方法。在很多情况下,一个片段可能会被大部分删除(例如,当它被放在后堆栈上时,没有显示UI),但是它的状态不会被保存,直到它所属的活动实际需要保存它的状态我看到的唯一方法是避免调用
binding.mapView.onSaveInstanceState(outState)当片段的视图已经被销毁时。@MarcoRomano但是引号没有解释为什么在
onCreateView()
之前调用它,当宿主
Activity.onCreate()
完成时应该调用它。引号说
fragment.onSaveInstanceState(Bundle)
可以在
Fragment.ondestory()之前的任何时间调用。这意味着可以在
Fragment.onCreateView(…)
之前调用
Fragment.onSaveInstanceState(Bundle)