Как принять изменение от ViewModel только один раз?

Проблема такая. У меня есть активити и фрагент в ней, активити через ViewModel отправляет данные во фрагент и та они меняються, но если я смен фрагментю, а потом заново вернусь к нему то сообщение приходит заново, как новое. Как сделать так чтобы они приходили только один раз?

Отправляю:

scoreViewModel = ViewModelProviders.of(this).get(ScoreViewModel.class);
scoreViewModel.addScore(event);

Получаю:

scoreViewModel.getScore().observe(this, new Observer<MainActivity.Event>() {
    @Override
    public void onChanged(@Nullable MainActivity.Event event) {
       mDataset.add(new Event(event.getFName(), event.getLName(), event.getMoney()));
       mAdapter.notifyDataSetChanged();
    }
});

ScoreViewModel

public class ScoreViewModel extends ViewModel{

    private MutableLiveData<MainActivity.Event> score;

    public MutableLiveData<MainActivity.Event> getScore() {
        if (score == null) { // убрать
            score = new MutableLiveData<>();
            resetScore();
        }
        return score;
    }

    public void addScore(MainActivity.Event event) {
        if (score.getValue() != null) {
            score.setValue(event);
        }
    }

    public void resetScore() {
        score.setValue(new MainActivity.Event(null,null,null));
    }
}

P.S. задумывался над тем, чтобы после отправки следом прописывать resetScore, а при получении делать проверку на null, это единственный мой рабочий вариант, но как по мне это не правильно. Спасибо!


Ответы (0 шт):