Android NullPointerException - 字段何时被垃圾回收?

Android NullPointerException - when do fields get garbage collected?

我在 Android activity:

中有类似的东西
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mPreferencesViewModel = new MainActivityPreferencesViewModel();

    mButton.setOnClickListener({ 
          mPreferencesViewModel.getSomething()
   })
}

伴随着 NullPointerException 崩溃 getSomething() 行的罕见报道。所以基本上,mPreferencesViewModel 是空的。

澄清一下:activity 中没有一段代码将字段重置为 null。

为什么会发生这样的事情?如果 activity 被销毁(因为应该再次调用 onCreate),是否会重新创建该字段?

什么情况下会出现这种情况?我正在尝试重现,但没有成功。

该字段什么时候会变为空?在 onStop()?

之后

好吧,问题是我在某些情况下从 Activity 的 onNewIntent() 调用按钮的点击侦听器,这显然是在 onCreate() 之前调用的。