Как сделать чтобы полученный с помощью LiveData List в дальнейшем не обновлялся?

In Dao:

    @Query("SELECT * FROM person_table WHERE status = :status_dead ORDER BY id ASC")
LiveData<List<Person>> getDeads(String status_dead);

In Repo:

public class PersonRepository {
    private LiveData<List<Person>> mDeads;
    public class PersonRepository {
        public Single<List<Person>> getFivePersonsFrom(String status_dead) {
            mPersonDao = db.PersonDao();
            mDeads = mPersonDao.getDeads(DEAD);
        }
        LiveData<List<Person>> getDeads() {
        return mDeads;
    }
}

In ViewModel:

public class PersonViewModel extends AndroidViewModel {
    private PersonRepository mRepository;
    private final LiveData<List<Person>> mDeads;
    public PersonViewModel(@NonNull Application application) {
        super(application);
        mRepository = new PersonRepository(application);
        mDeads = mRepository.getDeads();
    }
    LiveData<List<Person>> getDeads() {
        return mDeads;
    }
}

In Activity:

deadViewModel = new ViewModelProvider(this,
            ViewModelProvider.AndroidViewModelFactory.getInstance(this.getApplication()))
            .get(PersonViewModel.class);
deadViewModel.getDeads().observe(this, deads -> deadAdapter.submitList(deads));

Вобщем это все выводит мне в CardStackView список из базы, который "живой" - при изменениях в базе обновляется список. Мне же надо, чтобы в момент создания View получала через LIveData актуальный список, но последующие действия, влияющие на базу, уже не обновляли список.

Как это сделать?


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

Автор решения: Takexito

Как вариант вынести Observer в переменную и внутри отписываться от него

→ Ссылка