Android NullPointerException - когда поля собирают мусор? - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть что-то подобное в активности Android:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mPreferencesViewModel = new MainActivityPreferencesViewModel();

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

Наряду с редко сообщаемым NullPointerException падением на линии getSomething(). Так что, в принципе, mPreferencesViewModel равно нулю.

Чтобы уточнить: в упражнении нет фрагмента кода, который бы сбрасывал поле в ноль.

Почему что-то подобное произошло? Разве поле не было бы воссоздано, если действие было уничтожено (потому что onCreate должно быть вызвано снова)?

В каком случае это могло произойти? Я пытаюсь воспроизвести, но безуспешно.

Когда поле станет пустым? после onStop()?

1 Ответ

0 голосов
/ 14 ноября 2018

Хорошо, поэтому проблема заключалась в том, что в некоторых случаях я вызывал прослушиватель щелчков кнопки из onNewIntent() действия, которое, по-видимому, вызывается раньше onCreate().

...